vue组件 $children,$refs,$parent的使用详解


Posted in Javascript onJuly 31, 2017

本文介绍了vue组件 $children,$refs,$parent的使用,分享给大家,也自己留个笔记

如果项目很大,组件很多,怎么样才能准确的、快速的寻找到我们想要的组件了??

1)$refs

首先你的给子组件做标记。demo :<firstchild ref="one"></firstchild>

然后在父组件中,通过this.$refs.one就可以访问了这个自组件了,包括访问自组件的data里面的数据,调用它的函数

2)$children

他返回的是一个组件集合,如果你能清楚的知道子组件的顺序,你也可以使用下标来操作;

for(let i=0;i<this.$children.length;i++){
    console.log(this.$children[i].msg);输出子组件的msg数据;
 }

接下来就给一个长一点的deno

首先定义一个父组件:parentcomponent,

在父组件中我又是使用了两个自组件(假如有一百个自组件)[明确一点,组件只能有一个根节点],根节点是啥,我不知道。。。。。。

<template id="parentcomponent">
  <div >
    <p>this is a parent-component</p>
    <firstchild ref="f1"></firstchild>
    <secondchild ref="f2"></secondchild>
    <button @click='show_child_of_parents'>show child msg</button>
  </div>
</template>

 分别给出两个字组件的定义:(第2个使用的是template,第1个是script) 

<script type="text/x-template" id="childOne">
  <div>
    <p>this is first child</p>
   
    //使用stop阻止默认事件(vue的事件处理机制)
    <button @click.stop='getParent'>get parent msg</button>
  </div>
</script>

<template id="childSec">
  <div>
    <p>this is second child</p>
  </div>
</template>

组件模板定义好了,就是用:

1)挂在元素: 

<script>
  new Vue({
    el:"#app",
    data:{},
    components:{
      "parent-component":{
        template:'#parentcomponent', 
        data(){
          return{msg:'这是父组件中的内容'}          
        },
        methods:{
          show_child_of_parents(){
            //children方式访问自组件






 for(let i=0;i<this.$children.length;i++){
                console.log(this.$children[i].msg);
            }







 //通过$ref打标记,访问子组件 
            console.log(this.$refs.f1.msg);
 






this.$refs.f1.getParent();
          },                  
        },  





   
        components:{
          'firstchild':{
            template:'#childOne',
            data(){
              return {msg:'这是第一个子组件'};
            },
            methods:{
              getParent(){
                let a=1;
                console.log(a);
                alert(this.$parent.msg);
                
              }
            },
          },
          
          'secondchild':{
            template:'#childSec',
            data(){
              return {msg:"这是第二个组件"};
            }
          }
          
        }
                
      }
    }
    
  });

</script>

 2)使用父组件了

<body>
    <p><strong>可以通过$refs访问父组件的子组件</strong></p>
    <div id="app">
      <parent-component></parent-component>
    </div>
  </body>

值得注意的是vue2,相比vue1,丢弃了一些东西。。。。、https://3water.com/article/93467.htm

总结一下:

1)组件只能一个根节点

2)可以在自组件中使用this.$parent.属性值,或者函数

3)在父组件中可以使用this.$refs.组件的标记 访问子组件,或者this.$children[i].属性,,访问子组件的

 4)你需要注意this的指向

vue组件 $children,$refs,$parent的使用详解

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。 

Javascript 相关文章推荐
jquery radio 操作代码
Mar 16 Javascript
使用jQuery实现验证上传图片的格式与大小
Dec 03 Javascript
JavaScript阻止事件冒泡示例分享
Dec 28 Javascript
jQuery实现精美的多级下拉菜单特效
Mar 14 Javascript
jQuery实现鼠标经过像翻页和描点链接效果
Aug 08 Javascript
js实现横向拖拽导航条功能
Feb 17 Javascript
微信小程序商城项目之商品属性分类(4)
Apr 17 Javascript
web.js.字符串与正则表达式操作
May 13 Javascript
设置cookie指定时间失效(实例代码)
May 28 Javascript
如何理解Vue的作用域插槽的实现原理
Aug 19 Javascript
手动用webpack搭建第一个ReactApp的示例
Apr 11 Javascript
JS拖动选择table里的单元格完整实例【基于jQuery】
May 28 jQuery
Kindeditor单独调用单图上传增加预览功能的实例
Jul 31 #Javascript
Kindeditor单独调用多图上传实例
Jul 31 #Javascript
老生常谈ES6中的类
Jul 31 #Javascript
JS时间控制实现动态效果的实例讲解
Jul 31 #Javascript
JavaScript实现简单的双色球(实例讲解)
Jul 31 #Javascript
深入理解Vue transition源码分析
Jul 30 #Javascript
使用travis-ci如何持续部署node.js应用详解
Jul 30 #Javascript
You might like
PHP4实际应用经验篇(4)
2006/10/09 PHP
PHP 选项及相关信息函数库
2006/12/04 PHP
PHP统计目录下的文件总数及代码行数(去除注释及空行)
2011/01/17 PHP
php通过前序遍历树实现无需递归的无限极分类
2015/07/10 PHP
百度地图经纬度转换到腾讯地图/Google 对应的经纬度
2015/08/28 PHP
php通过smtp邮件验证登陆的方法
2016/05/11 PHP
PHP实现基于PDO扩展连接PostgreSQL对象关系数据库示例
2018/03/31 PHP
javascript 面向对象全新理练之继承与多态
2009/12/03 Javascript
ExtJS 入门
2010/10/29 Javascript
CSS(js)限制页面显示的文本字符长度
2012/12/27 Javascript
javascript数组去重的六种方法汇总
2015/08/16 Javascript
jquery实现弹出层登录和全屏层注册特效
2015/08/28 Javascript
jQuery模拟Marquee实现无缝滚动效果完整实例
2016/09/29 Javascript
Node.js中路径处理模块path详解
2016/11/14 Javascript
使用原生的javascript来实现轮播图
2017/02/24 Javascript
Vue实现动态响应数据变化
2017/04/28 Javascript
vue axios请求拦截实例代码
2018/03/29 Javascript
在Mac下彻底卸载node和npm的方法
2018/05/16 Javascript
微信小程序实现列表页的点赞和取消点赞功能
2018/11/02 Javascript
JS的时间格式化和时间戳转换函数示例详解
2020/07/27 Javascript
基于p5.js 2D图像接口的扩展(交互实现)
2020/11/30 Javascript
[02:59]DOTA2完美大师赛主赛事第三日精彩集锦
2017/11/25 DOTA
Python实用日期时间处理方法汇总
2015/05/09 Python
python实现飞机大战微信小游戏
2020/03/21 Python
Python学习笔记之读取文件、OS模块、异常处理、with as语法示例
2019/06/04 Python
selenium+headless chrome爬虫的实现示例
2021/01/08 Python
python drf各类组件的用法和作用
2021/01/12 Python
台湾旅游网站:雄狮旅游网
2017/08/16 全球购物
美国和加拿大计算机和电子产品购物网站:TigerDirect.com
2019/09/13 全球购物
劳资员岗位职责
2013/11/11 职场文书
2014年自愿离婚协议书范本
2014/09/25 职场文书
酒店销售经理岗位职责
2015/04/02 职场文书
七一活动主持词
2015/06/29 职场文书
致接力运动员加油稿
2015/07/21 职场文书
职工培训工作总结
2015/08/10 职场文书
Python Django项目和应用的创建详解
2021/11/27 Python