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 相关文章推荐
List the UTC Time on a Computer
Jun 11 Javascript
Extjs 几个方法的讨论
Jan 28 Javascript
jQuery大于号(&gt;)选择器的作用解释
Jan 13 Javascript
jQuery获得指定元素坐标的方法
Apr 14 Javascript
JS实现兼容性好,自动置顶的淘宝悬浮工具栏效果
Sep 18 Javascript
js图片轮播效果实现代码
Apr 18 Javascript
javascript瀑布流式图片懒加载实例
Jun 28 Javascript
jQuery实现订单提交页发送短信功能前端处理方法
Jul 04 Javascript
JavaScript代码判断输入的字符串是否含有特殊字符和表情代码实例
Aug 17 Javascript
layui数据表格跨行自动合并的例子
Sep 02 Javascript
微信小程序HTTP请求从0到1封装
Sep 09 Javascript
JS数组的常用10种方法详解
May 08 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
php防止sql注入示例分析和几种常见攻击正则表达式
2014/01/12 PHP
php日历制作代码分享
2014/01/20 PHP
PHP中array_keys和array_unique函数源码的分析
2016/02/26 PHP
function, new function, new Function之间的区别
2007/03/08 Javascript
使用onbeforeunload属性后的副作用
2007/03/08 Javascript
讨论javascript(一)工厂方式 js面象对象的定义方法
2009/12/15 Javascript
判断控件是否已加载完成的代码
2010/02/24 Javascript
IE JS无提示关闭窗口不提示的方法
2010/04/29 Javascript
jquery自定义属性(类型/属性值)
2013/05/21 Javascript
JS+CSS 制作的超级简单的下拉菜单附图
2013/11/22 Javascript
JS弹出层的显示与隐藏示例代码
2013/12/27 Javascript
JavaScript中遍历对象的property的3种方法介绍
2014/12/30 Javascript
JS冒泡事件与事件捕获实例详解
2016/11/25 Javascript
遍历json获得数据的几种方法小结
2017/01/21 Javascript
Vue项目中设置背景图片方法
2018/02/21 Javascript
基于React+Redux的SSR实现方法
2018/07/03 Javascript
Vue入门之数量加减运算操作示例
2018/12/11 Javascript
js中async函数结合promise的小案例浅析
2019/04/14 Javascript
Node.JS获取GET,POST数据之queryString模块使用方法详解
2020/02/06 Javascript
JS+JQuery实现无缝连接轮播图
2020/12/30 jQuery
原生JavaScript实现换肤
2021/02/19 Javascript
[01:32]完美世界DOTA2联赛10月29日精彩集锦
2020/10/30 DOTA
python使用rabbitmq实现网络爬虫示例
2014/02/20 Python
python实用代码片段收集贴
2015/06/03 Python
Python中import导入上一级目录模块及循环import问题的解决
2016/06/04 Python
python简单实例训练(21~30)
2017/11/15 Python
Django admin 实现search_fields精确查询实例
2020/03/30 Python
pytorch掉坑记录:model.eval的作用说明
2020/06/23 Python
python爬虫请求头设置代码
2020/07/28 Python
Shoes For Crews法国官网:美国领先的防滑鞋设计和制造商
2018/01/01 全球购物
澳大利亚个性化儿童礼品网站:Bright Star Kids
2019/06/14 全球购物
写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度
2015/11/18 面试题
校庆标语集锦
2014/06/25 职场文书
乡镇个人对照检查材料
2014/08/22 职场文书
2014年创先争优工作总结
2014/12/11 职场文书
演讲稿:态度决定一切
2019/04/02 职场文书