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 相关文章推荐
javascript引用对象的方法
Jan 11 Javascript
js form 验证函数 当前比较流行的错误提示
Jun 23 Javascript
js网页中的(运行代码)功能实现思路
Feb 04 Javascript
javascript 密码框防止用户粘贴和复制的实现代码
Feb 17 Javascript
JavaScript获得url查询参数的方法
Jul 02 Javascript
JavaScript获取IP获取的是IPV6 如何校验
Jun 12 Javascript
详解Vue.js——60分钟组件快速入门(上篇)
Dec 05 Javascript
jQuery实现页面倒计时并刷新效果
Mar 13 Javascript
ES6 Promise对象概念与用法分析
Apr 01 Javascript
vuejs 切换导航条高亮(路由菜单高亮)的方法示例
May 29 Javascript
Javascript删除数组里的某个元素
Feb 28 Javascript
JS实现查找数组中对象的属性值是否存在示例
May 24 Javascript
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
解决dede生成静态页和动态页转换的一些问题,及火车采集入库生成动态的办法
2007/03/29 PHP
PHP提示Cannot modify header information - headers already sent by解决方法
2014/09/22 PHP
php使用fputcsv()函数csv文件读写数据的方法
2015/01/06 PHP
准确获得页面、窗口高度及宽度的JS
2006/11/26 Javascript
js客户端快捷键管理类的较完整实现和应用
2010/06/08 Javascript
JS遮罩层效果 兼容ie firefox jQuery遮罩层
2010/07/26 Javascript
JavaScript自定义DateDiff函数(兼容所有浏览器)
2012/03/01 Javascript
jquery实现带单选按钮的表格行选中时高亮显示
2013/08/01 Javascript
checkbox设置复选框的只读效果不让用户勾选
2013/08/12 Javascript
javascript对下拉列表框(select)的操作实例讲解
2013/11/29 Javascript
Javascript常用字符串判断函数代码分享
2014/12/08 Javascript
JS实现淘宝支付宝网站的控制台菜单效果
2015/09/28 Javascript
继续学习javascript闭包
2015/12/03 Javascript
Node.js的Koa框架上手及MySQL操作指南
2016/06/13 Javascript
JavaScript读二进制文件并用ajax传输二进制流的方法
2016/07/18 Javascript
微信小程序实现页面跳转传值的方法
2017/10/12 Javascript
Bootstrap table 实现树形表格联动选中联动取消功能
2019/09/30 Javascript
element日历calendar组件上月、今天、下月、日历块点击事件及模板源码
2020/07/27 Javascript
[01:45]绝对公平!DOTA2队长征召模式详解
2014/04/25 DOTA
python制作企业邮箱的爆破脚本
2016/10/05 Python
Python用list或dict字段模式读取文件的方法
2017/01/10 Python
Python+OpenCV+图片旋转并用原底色填充新四角的例子
2019/12/12 Python
Pytorch自己加载单通道图片用作数据集训练的实例
2020/01/18 Python
详谈tensorflow gfile文件的用法
2020/02/05 Python
python 实现人和电脑猜拳的示例代码
2020/03/02 Python
Python3 xml.etree.ElementTree支持的XPath语法详解
2020/03/06 Python
Selenium 配置启动项参数的方法
2020/12/04 Python
英国奢侈品网站:MatchesFashion
2016/12/16 全球购物
We Fashion荷兰:一家国际时装公司
2018/04/18 全球购物
美国棒球装备和用品商店:Baseball Savings
2018/06/09 全球购物
说一下mysql, oracle等常见数据库的分页实现方案
2012/09/29 面试题
个人担保书格式范文
2014/05/12 职场文书
关于晚自习早退的检讨书
2014/09/13 职场文书
党员观看《筑梦中国》心得体会
2016/01/18 职场文书
详解JS ES6编码规范
2021/05/07 Javascript
WIN10使用IIS部署ftp服务器详细教程
2022/08/05 Servers