vue组件父子间通信详解(三)


Posted in Javascript onNovember 07, 2017

本文实例为大家分享了vue组件父子间通信的具体代码,供大家参考,具体内容如下

三、组件间通信($parent $refs)

父组件要想获取子组件的数据:

①在调用子组件的时候,指定ref属性

<child-component ref="mySon"></child-component>

②根据指定的引用的名字 找到子组件的实例对象

this.$refs.mySon

子组件要想获取父组件的数据:

①直接读取
this.$parent
通过this.$refs拿到子组件的数据

代码:

<!doctype html>
<html>
 <head>
 <meta charset="UTF-8">
 <title>组件间通信-01</title>
  <script src="js/vue.js"></script>
 </head>
 <body>
 <div id="container">
    <p>{{msg}}</p>
    <dahua></dahua>
  </div>
  <script>
  //vue提供的ref
    Vue.component("dahua",{
      data:function(){
        return{
          mySonName:""
        }
      },
      methods:{
      //通过$refs拿到指定的所引用的对应的组件的实例对象
        getSonName:function(){
          this.mySonName = this.$refs.mySon.name;
        }
      },
      template:`
        <div>
          <h1>这是父组件</h1>
          <button @click = "getSonName">获取子组件数据</button>
          <span>{{mySonName}}</span>
          <hr>
          <xiaohua ref="mySon"></xiaohua>
        </div>
      `
    })
//  创建子组件
    Vue.component("xiaohua",{
      data:function(){
        return{
          name:"小花"
        }
      },
      template:`
          <h1>这是子组件</h1>
      `
    })
    new Vue({
      el:"#container",
      data:{
        msg:"Hello VueJs"
      }
    })
  </script>
 </body>
</html>

子组件通过$parent获取父组件的数据

<!doctype html>
<html>
 <head>
 <meta charset="UTF-8">
 <title>组件间通信-02</title>
  <script src="js/vue.js"></script>
 </head>
 <body>
 <div id="container">
    <p>{{msg}}</p>
    <dahua></dahua>
  </div>
  <script>
    //创建子组件
    Vue.component("dahua",{
      data:function(){
        return{
          myName:"大花"
        }
      },
      template:`
        <div>
          <h1>这是父组件</h1>
          <hr>
          <xiaohua></xiaohua>
        </div>
      `
    })
    //创建子组件
    Vue.component("xiaohua",{
      data:function(){
        return{
          msg:""
        }
      },
      template:`
        <div>
            <h1>这是子组件</h1>
            <p>{{msg}}</p>
        </div>
      `,
      created:function(){
        //在子组件创建完成时获取父组件的数据
        //保存在msg中在p标签中显示
          this.msg = this.$parent.myName;
      }
    })
    new Vue({
      el:"#container",
      data:{
        msg:"Hello VueJs"
      }
    })
  </script>
 </body>
</html>

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

Javascript 相关文章推荐
JavaScript表单常用验证集合
Jan 16 Javascript
Div Select挡住的解决办法
Aug 07 Javascript
Jquery+WebService 校验账号是否已被注册的代码
Jul 12 Javascript
js读取csv文件并使用json显示出来
Jan 09 Javascript
JavaScript数组的栈方法与队列方法详解
May 26 Javascript
JS基于递归实现网页版计算器的方法分析
Dec 20 Javascript
JavaScript中变量、指针和引用功能与操作示例
Aug 04 Javascript
一个因@click.stop引发的bug的解决
Jan 08 Javascript
在VUE中实现文件下载并判断状态的方法
Nov 08 Javascript
js实现简单放大镜效果
Mar 07 Javascript
JavaScript定时器使用方法详解
Mar 26 Javascript
JavaScript继承的三种方法实例
May 12 Javascript
浅谈ES6 模板字符串的具体使用方法
Nov 07 #Javascript
微信小程序上传图片到服务器实例代码
Nov 07 #Javascript
解决Vue使用mint-ui loadmore实现上拉加载与下拉刷新出现一个页面使用多个上拉加载后冲突问题
Nov 07 #Javascript
vue组件间通信子与父详解(二)
Nov 07 #Javascript
原生JS实现 MUI导航栏透明渐变效果
Nov 07 #Javascript
mongoose设置unique不生效问题的解决及如何移除unique的限制
Nov 07 #Javascript
vue组件父与子通信详解(一)
Nov 07 #Javascript
You might like
php curl获取网页内容(IPV6下超时)的解决办法
2013/07/16 PHP
php面向对象中的魔术方法中文说明
2014/03/04 PHP
PHP获取一个字符串中间一部分字符的方法
2014/08/19 PHP
PHP中检索字符串的方法分析【strstr与substr_count方法】
2017/02/17 PHP
PHP设计模式(六)桥连模式Bridge实例详解【结构型】
2020/05/02 PHP
PHP实现计算器小功能
2020/08/28 PHP
利用XMLHTTP传递参数在另一页面执行并刷新本页
2006/10/26 Javascript
Prototype使用指南之form.js
2007/01/10 Javascript
JavaScript的parseInt 进制问题
2009/05/07 Javascript
javascript 简单抽屉效果的实现代码
2010/03/09 Javascript
jquery创建并行对象或者合并对象的实现代码
2012/10/10 Javascript
将光标定位于输入框最右侧实现代码
2012/12/04 Javascript
框架页面高度自动刷新的Javascript脚本
2013/11/01 Javascript
解决window.opener=null;window.close(),只支持IE6不支持IE7,IE8的问题
2014/01/14 Javascript
JavaScript插件化开发教程 (一)
2015/01/27 Javascript
详解JavaScript基于面向对象之继承
2015/12/13 Javascript
jQuery Validate插件实现表单强大的验证功能
2015/12/18 Javascript
jQuery实现的简单分页示例
2016/06/01 Javascript
Vue.js实现模拟微信朋友圈开发demo
2017/04/20 Javascript
判断滚动条滑到底部触发事件(实例讲解)
2017/11/15 Javascript
Layui给数据表格动态添加一行并跳转到添加行所在页的方法
2018/08/20 Javascript
vue自定义tap指令及tap事件的实现
2018/09/18 Javascript
vue2使用keep-alive缓存多层列表页的方法
2018/09/21 Javascript
微信小程序动画(Animation)的实现及执行步骤
2018/10/28 Javascript
[56:17]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第三场 8.22
2019/09/05 DOTA
python爬虫之爬取百度音乐的实现方法
2019/08/24 Python
英国知名的护肤彩妆与时尚配饰大型综合零售电商:Unineed
2016/11/21 全球购物
Bally美国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/18 全球购物
澳大利亚拥有最好的家具和家居用品在线目的地:Nestz
2019/02/23 全球购物
电影T恤、80年代T恤和80年代服装:TV Store Online
2020/01/05 全球购物
如何提高SQL Server的安全性
2016/07/25 面试题
捐款活动总结
2014/08/27 职场文书
2014年服务行业工作总结
2014/11/18 职场文书
钱学森电影观后感
2015/06/04 职场文书
教师节班会主持词
2015/07/06 职场文书
公司费用报销管理制度
2015/08/04 职场文书