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 相关文章推荐
拖拉表格的JS函数
Nov 20 Javascript
MyEclipse取消验证Js的两种方法
Nov 14 Javascript
js实现漂浮回顶部按钮实例
May 06 Javascript
浅谈angular2的http请求返回结果的subcribe注意事项
Mar 01 Javascript
JS实现图片预览的两种方式
Jun 27 Javascript
Angular 封装并发布组件的方法示例
Apr 19 Javascript
Vue2.0 实现歌手列表滚动及右侧快速入口功能
Aug 08 Javascript
Vue父子组件之间的通信实例详解
Sep 28 Javascript
微信小程序实现基于三元运算验证手机号/姓名功能示例
Jan 19 Javascript
解决vue-router路由拦截造成死循环问题
Aug 05 Javascript
JavaScript实现页面动态验证码的实现示例
Mar 23 Javascript
一篇文章了解正则表达式的替换技巧
Feb 24 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的类树(支持无限分类)
2006/10/09 PHP
Mysql数据库操作类( 1127版,提供源码下载 )
2010/12/02 PHP
PHP中全面阻止SQL注入式攻击分析小结
2012/01/30 PHP
学习php中的正则表达式
2014/08/17 PHP
PHP使用get_headers函数判断远程文件是否存在的方法
2014/11/28 PHP
PHP面向对象中new self()与 new static()的区别浅析
2017/08/17 PHP
PHP抽象类和接口用法实例详解
2019/07/20 PHP
javascript实现轮显新闻标题链接
2007/08/13 Javascript
jquery队列queue与原生模仿其实现方法分享
2014/03/25 Javascript
jquery事件preventDefault()方法用法实例
2015/01/16 Javascript
JavaScript中通过prototype属性共享属性和方法的技巧实例
2015/03/13 Javascript
实例代码讲解jquery easyui动态tab页
2015/11/17 Javascript
浅析2种JavaScript继承方式
2015/12/04 Javascript
javascript结合Flexbox简单实现滑动拼图游戏
2016/02/18 Javascript
BootStrap selectpicker
2016/06/20 Javascript
js H5 canvas投篮小游戏
2016/08/18 Javascript
Three.js的使用及绘制基础3D图形详解
2017/04/27 Javascript
JS 中document.write()的用法和清空的原因浅析
2017/12/04 Javascript
vue引入ueditor及node后台配置详解
2018/01/03 Javascript
重置Redux的状态数据的方法实现
2019/11/18 Javascript
Python中如何获取类属性的列表
2016/12/26 Python
Python编程二分法实现冒泡算法+快速排序代码示例
2018/01/15 Python
python 处理telnet返回的More,以及get想要的那个参数方法
2019/02/14 Python
Python环境Pillow( PIL )图像处理工具使用解析
2019/09/12 Python
Python2与Python3的区别详解
2020/02/09 Python
python中delattr删除对象方法的代码分析
2020/12/15 Python
Madewell澳大利亚官方网站:美国休闲服饰品牌
2019/07/18 全球购物
日本最大的购物网站:日本乐天市场(Rakuten Ichiba)
2020/11/04 全球购物
大学应届生求职简历的自我评价
2013/10/08 职场文书
信息科学与技术专业求职信范文
2014/02/20 职场文书
制冷与空调专业毕业生推荐信
2014/07/07 职场文书
初中生思想道德自我评价
2015/03/09 职场文书
安全生产隐患排查制度
2015/08/05 职场文书
nginx反向代理时如何保持长连接
2021/03/31 Servers
vue数据字典取键值项目的字典问题
2022/04/12 Vue.js
MySQL慢查询中的commit慢和binlog中慢事务的区别
2022/06/16 MySQL