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 获取Listbox选择的值的代码
Apr 15 Javascript
基于Jquery的回车成tab焦点切换效果代码(Enter To Tab )
Nov 14 Javascript
Underscore.js 1.3.3 中文注释翻译说明
Jun 25 Javascript
js实现的动画导航菜单效果代码
Sep 10 Javascript
在js中做数字字符串补0(js补零)
Mar 25 Javascript
详解vue项目优化之按需加载组件-使用webpack require.ensure
Jun 13 Javascript
将angular.js项目整合到.net mvc中的方法详解
Jun 29 Javascript
基于jQuery Easyui实现登陆框界面
Jul 10 jQuery
vue.js element-ui validate中代码不执行问题解决方法
Dec 18 Javascript
Angular实现可删除并计算总金额的购物车功能示例
Dec 26 Javascript
详细讲解如何创建, 发布自己的 Vue UI 组件库
May 29 Javascript
Vue表单控件数据绑定方法详解
Feb 05 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+mysql来做一个功能强大的在线计算器
2010/10/12 PHP
php获取后台Job管理的实现代码
2011/06/10 PHP
JQuery浮动DIV提示信息并自动隐藏的代码
2010/08/29 Javascript
使用JQuery和CSS模拟超链接的用户单击事件的实现代码
2012/05/23 Javascript
jQuery操作元素css样式的三种方法
2014/06/04 Javascript
javascript操纵OGNL标签示例代码
2014/06/16 Javascript
微信小程序 WXML、WXSS 和JS介绍及详解
2016/10/08 Javascript
真正好用的js验证上传文件大小的简单方法
2016/10/27 Javascript
BootstrapValidator超详细教程(推荐)
2016/12/07 Javascript
Vue.JS入门教程之自定义指令
2016/12/08 Javascript
node.js实现登录注册页面
2017/04/08 Javascript
Node.js中流(stream)的使用方法示例
2017/07/16 Javascript
给vue项目添加ESLint的详细步骤
2017/09/29 Javascript
初识 Vue.js 中的 *.Vue文件
2017/11/22 Javascript
vue的安装及element组件的安装方法
2018/03/09 Javascript
Vue+ElementUI项目使用webpack输出MPA的方法
2019/08/27 Javascript
javascript简单实现深浅拷贝过程详解
2019/10/08 Javascript
D3.js 实现带伸缩时间轴拓扑图的示例代码
2020/01/20 Javascript
[02:09]抵达西雅图!中国军团加油!
2014/07/07 DOTA
[01:06]DOTA2隆重推出2016冬季勇士令状 内含上海特级锦标赛互动指南
2016/02/17 DOTA
Python库urllib与urllib2主要区别分析
2014/07/13 Python
Python利用正则表达式匹配并截取指定子串及去重的方法
2015/07/30 Python
Python 中的Selenium异常处理实例代码
2018/05/03 Python
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
2018/07/27 Python
Python读取mat文件,并保存为pickle格式的方法
2018/10/23 Python
python 从文件夹抽取图片另存的方法
2018/12/04 Python
对Django中的权限和分组管理实例讲解
2019/08/16 Python
Python简易计算器制作方法代码详解
2019/10/31 Python
python读取图片的几种方式及图像宽和高的存储顺序
2020/02/11 Python
Python Excel vlookup函数实现过程解析
2020/06/22 Python
使用keras框架cnn+ctc_loss识别不定长字符图片操作
2020/06/29 Python
pycharm 添加解释器的方法步骤
2020/08/31 Python
打架检讨书400字
2014/01/17 职场文书
初三开学计划书
2014/04/27 职场文书
专家推荐信怎么写
2015/03/25 职场文书
盘点2020年适合农村地区创业的项目
2019/10/16 职场文书