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 动态加载 css 方法总结
Jul 11 Javascript
javascript闭包的高级使用方法实例
Jul 04 Javascript
jquery ajax的success回调函数中实现按钮置灰倒计时
Nov 19 Javascript
javascript动态判断html元素并执行不同的操作
Jun 16 Javascript
node.js [superAgent] 请求使用示例
Mar 13 Javascript
jQuery简单实现仿京东分类导航层效果
Jun 07 Javascript
Websocket协议详解及简单实例代码
Dec 12 Javascript
javascript prototype原型详解(比较基础)
Dec 26 Javascript
js正则表达式验证表单【完整版】
Mar 06 Javascript
jQuery插件HighCharts绘制2D饼图效果示例【附demo源码下载】
Mar 21 jQuery
JS实现批量上传文件并显示进度功能
Jun 27 Javascript
JS用最简单的方法实现四舍五入
Aug 27 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 随机排序广告的实现代码
2011/05/09 PHP
如何正确配置Nginx + PHP
2016/07/15 PHP
PHP闭包定义与使用简单示例
2018/04/13 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
2020/02/18 PHP
用脚本调用样式的几种方法
2006/12/09 Javascript
javascript import css实例代码
2008/07/18 Javascript
js的闭包的一个示例说明
2008/11/18 Javascript
JavaScript 事件记录使用说明
2009/10/20 Javascript
AngularJS 让人爱不释手的八种功能
2016/03/23 Javascript
Angular.js 实现数字转换汉字实例代码
2016/07/14 Javascript
轻松掌握JavaScript中介者模式
2016/08/26 Javascript
vue 自定义全局方法,在组件里面的使用介绍
2018/02/28 Javascript
js操作二进制数据方法
2018/03/03 Javascript
jquery ajaxfileuplod 上传文件 essyui laoding 效果【防止重复上传文件】
2018/05/26 jQuery
详解小程序之简单登录注册表单验证
2019/05/13 Javascript
ant-design-vue中tree增删改的操作方法
2020/11/03 Javascript
[01:22]DOTA2神秘商店携大量周边降临完美大师赛
2017/11/07 DOTA
使用Python进行新浪微博的mid和url互相转换实例(10进制和62进制互算)
2014/04/25 Python
python爬虫常用的模块分析
2014/08/29 Python
解析Python中的变量、引用、拷贝和作用域的问题
2015/04/07 Python
Python的Flask框架中实现简单的登录功能的教程
2015/04/20 Python
Python解析json文件相关知识学习
2016/03/01 Python
Python调用SQLPlus来操作和解析Oracle数据库的方法
2016/04/09 Python
Python的collections模块中namedtuple结构使用示例
2016/07/07 Python
python与php实现分割文件代码
2017/03/06 Python
利用python操作SQLite数据库及文件操作详解
2017/09/22 Python
Selenium+Python 自动化操控登录界面实例(有简单验证码图片校验)
2019/06/28 Python
Java文件与类动手动脑实例详解
2019/11/10 Python
德国孕妇装和婴童服装网上商店:bellybutton
2018/04/12 全球购物
澳大利亚最大的在线美发和美容零售商之一:My Hair Care & Beauty
2019/08/24 全球购物
捷克建筑材料网上商店:DEK.cz
2021/03/06 全球购物
.NET概念性的面试题
2012/02/29 面试题
餐饮业会计岗位职责
2013/12/19 职场文书
广播体操口号
2014/06/18 职场文书
青年文明号汇报材料
2014/12/23 职场文书
Python装饰器详细介绍
2022/03/25 Python