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


Posted in Javascript onNovember 07, 2017

接着vue组件父与子通信详解继续学习。

二、组件间通信(子组件传值给父组件)

通过事件的方式来完成数据的传输。

①在父组件中 定义一个方法,用来接收子组件所通过事件传来的值

methods:{
recvMsg:function(msg){

//参数msg就是子组件通过事件出来的数据

}
}

②绑定事件处理函数

事件一般情况 都是自定义事件

<child-component @myEvent="recvMsg"></child-component>

③在子组件触发事件

事件名,值
this.$emit('myEvent',myPhone)
//触发一个叫做myEvent的事件,同时把第二个参数数据传递给事件对应的处理函数

总结:

在Vue 中,父子组件的关系可以总结为 props down, events up。父组件通过 props 向下传递数据给子组件,子组件通过 events 给父组件发送消息。

<!doctype html>
<html>
 <head>
 <meta charset="UTF-8">
 <title>组件间通信子传父</title>
  <script src="js/vue.js"></script>
 </head>
 <body>
 <div id="container">
    <p>{{msg}}</p>
    <parent-component></parent-component>
  </div>
  <script>
    //通过事件的方式传递
    //  绑定 -- 触发
    Vue.component("parent-component",{
      data:function(){
        return {
          sonMsg:""
        }
      },
      methods:{
        //msg参数要拿子传递的值          
        recvMsg:function(msg){
          console.log("父组件接收到子组件的数据"+msg);
          this.sonMsg = msg;

        }
      },
      template:`
        <div>
          <h1>这是父组件</h1>
          <p>子组件传来的数据为:{{sonMsg}}</p>
          <hr/>
          <child-component @customEvent="recvMsg"></child-component>
        </div>
      `
    })
    Vue.component("child-component",{
      methods:{
        sendMsg:function(){
          //来触发绑定给子组件的自定义方法
          //this.$emit("customEvent");第一个参数触发
          //this.$emit("customEvent");第二个参数传值
          this.$emit("customEvent","哈哈哈哈");
        },
      },
      template:`
        <div>
          <h1>这是子组件</h1>
          <button @click="sendMsg">senToFather</button>
        </div>
      `
    })
    new Vue({
      el:"#container",
      data:{
        msg:"Hello VueJs"
      }
    })
  </script>
 </body>
</html>

在子组件中放上一个input,点击按钮 把用户输入的内容发给父组件

<!doctype html>
<html>
 <head>
 <meta charset="UTF-8">
 <title>子与父之间的通信</title>
  <script src="js/vue.js"></script>
 </head>
 <body>
 <div id="container">
    <p>{{msg}}</p>
    <parent-component></parent-component>
  </div>
  <script>
  //创建父组件
    Vue.component("parent-component",{
    //data属性
      data:function(){
        return{
          sonMsg:""
        }
      },
      methods:{
        recvMsg:function(msg){
          this.sonMsg = msg
        }
      },
      template:`
        <div>
          <h1>父组件</h1>
          <h4>子组件传递的数据:{{sonMsg}}</h4>
          <child-component @customEvent="recvMsg"></child-component>
        </div>
      `
    })
    //创建子组件
    Vue.component("child-component",{
      data:function(){
        return {
          myInput:""
        }
      },
      methods:{
        sendMsg:function(){
          this.$emit("customEvent",this.myInput);
        }
      },
      template:`
        <div>
          <h1>子组件</h1>
          <input type="text" v-model="myInput"/>
          <button @click="sendMsg">发送</button>
        </div>
      `
    })
    new Vue({
      el:"#container",
      data:{
        msg:"Hello VueJs"
      }
    })
  </script>
 </body>
</html>

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

Javascript 相关文章推荐
js 提交和设置表单的值
Dec 19 Javascript
jquery ui dialog ie8出现滚动条的解决方法
Dec 06 Javascript
九种js弹出对话框的方法总结
Mar 12 Javascript
Jquery 的outerHeight方法使用介绍
Sep 11 Javascript
jsonp原理及使用
Oct 28 Javascript
JavaScript中跨域调用Flash的方法
Aug 11 Javascript
JS禁用页面上所有控件的实现方法(附demo源码下载)
Dec 17 Javascript
js实现弹窗居中的简单实例
Oct 09 Javascript
Vue实现选择城市功能
May 27 Javascript
Vue实现滑动拼图验证码功能
Sep 15 Javascript
react 原生实现头像滚动播放的示例
Apr 21 Javascript
如何让vue长列表快速加载
Mar 29 Vue.js
原生JS实现 MUI导航栏透明渐变效果
Nov 07 #Javascript
mongoose设置unique不生效问题的解决及如何移除unique的限制
Nov 07 #Javascript
vue组件父与子通信详解(一)
Nov 07 #Javascript
vue组件父子间通信之综合练习(聊天室)
Nov 07 #Javascript
Mint UI 基于 Vue.js 移动端组件库
Nov 07 #Javascript
vue中SPA单页面应用程序详解
Nov 07 #Javascript
vue-router实现组件间的跳转(参数传递)
Nov 07 #Javascript
You might like
PHP中实现图片的锐化
2006/10/09 PHP
php获取本周星期一具体日期的方法
2015/04/20 PHP
php生成gif动画的方法
2015/11/05 PHP
php实现数组纵向转横向并过滤重复值的方法分析
2017/05/29 PHP
php实现获取近几日、月时间示例
2019/07/06 PHP
JavaScript版代码高亮
2006/06/26 Javascript
大家未必知道的Js技巧收藏
2008/04/07 Javascript
模拟电子签章盖章效果的jQuery插件源码
2013/06/24 Javascript
全面解析Bootstrap表单使用方法(表单样式)
2015/11/24 Javascript
原生JavaScript实现动态省市县三级联动下拉框菜单实例代码
2016/02/03 Javascript
jQuery点击导航栏选中更换样式的实现代码
2017/01/23 Javascript
详解Javascript中DOM的范围
2017/02/13 Javascript
vue.extend实现alert模态框弹窗组件
2018/04/28 Javascript
nuxt.js 缓存实践
2018/06/25 Javascript
jQuery子选择器与可见性选择器实例分析
2019/06/28 jQuery
基于Vue el-autocomplete 实现类似百度搜索框功能
2019/10/25 Javascript
在vue和element-ui的table中实现分页复选功能
2019/12/04 Javascript
详细分析Node.js 模块系统
2020/06/28 Javascript
Javascript实现单选框效果
2020/12/09 Javascript
Swift中的协议(protocol)学习教程
2016/07/08 Python
儿童学习python的一些小技巧
2018/05/27 Python
使用python爬取抖音视频列表信息
2019/07/15 Python
PyCharm专业最新版2019.1安装步骤(含激活码)
2019/10/09 Python
Python PyQt5整理介绍
2020/04/01 Python
python print 格式化输出,动态指定长度的实现
2020/04/12 Python
python多进程使用函数封装实例
2020/05/02 Python
python Zmail模块简介与使用示例
2020/12/19 Python
Weblogic的布署方式
2013/08/23 面试题
公司年会策划方案
2014/05/17 职场文书
国庆节活动总结
2014/08/26 职场文书
纪检监察立案决定书
2015/06/24 职场文书
2015年科学教研组工作总结
2015/07/22 职场文书
离婚起诉书范文2016
2015/11/26 职场文书
委托书范本格式
2019/04/18 职场文书
2019生态环境保护倡议书!
2019/07/03 职场文书
python使用matplotlib绘制图片时x轴的刻度处理
2021/08/30 Python