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 target与currentTarget区别说明
Aug 28 Javascript
下拉框select的绑定示例
Sep 04 Javascript
javascript实现带下拉子菜单的导航菜单效果
May 14 Javascript
js获取元素的外链样式的简单实现方法
Jun 06 Javascript
JQuery遍历元素的父辈和祖先的方法
Sep 18 Javascript
怎样判断jQuery当前元素是隐藏还是显示
Nov 23 Javascript
jQuery联动日历的实例解析
Dec 02 Javascript
Angular.js与node.js项目里用cookie校验账户登录详解
Feb 22 Javascript
jquery实现数字输入框
Feb 22 Javascript
详解如何构建Angular项目目录结构
Jul 13 Javascript
Vue中组件之间数据的传递的示例代码
Sep 08 Javascript
Node.js 中如何收集和解析命令行参数
Jan 08 Javascript
原生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中获取指定IP的物理地址的代码(正则表达式)
2011/06/23 PHP
yii操作cookie实例简介
2014/07/09 PHP
yii实现创建验证码实例解析
2014/07/31 PHP
php中最简单的字符串匹配算法
2014/12/16 PHP
php基于Fleaphp框架实现cvs数据导入MySQL的方法
2016/02/23 PHP
PHP模板引擎Smarty中变量的使用方法示例
2016/04/11 PHP
js同比例缩放图片的小例子
2013/10/30 Javascript
完美解决AJAX跨域问题
2013/11/01 Javascript
JS中操作JSON总结
2020/12/06 Javascript
jquery实现下拉框多选方法介绍
2017/01/03 Javascript
react-redux中connect()方法详细解析
2017/05/27 Javascript
VUE中v-model和v-for指令详解
2017/06/23 Javascript
js实现拖拽上传图片功能
2017/08/01 Javascript
关于react-router/react-router-dom v4 history不能访问问题的解决
2018/01/08 Javascript
微信小程序使用map组件实现路线规划功能示例
2019/01/22 Javascript
echarts饼图各个板块之间的空隙如何实现
2020/12/01 Javascript
Python中使用copy模块实现列表(list)拷贝
2015/04/14 Python
python如何派生内置不可变类型并修改实例化行为
2018/03/21 Python
python3下使用cv2.imwrite存储带有中文路径图片的方法
2018/05/10 Python
python os用法总结
2018/06/08 Python
python自动化生成IOS的图标
2018/11/13 Python
python爬取淘宝商品销量信息
2018/11/16 Python
Python中三元表达式的几种写法介绍
2019/03/04 Python
Django实现网页分页功能
2019/10/31 Python
opencv python在视屏上截图功能的实现
2020/03/05 Python
Python如何telnet到网络设备
2021/02/18 Python
污水厂厂长岗位职责
2014/01/04 职场文书
装修致歉信
2014/01/15 职场文书
学生感冒英文请假条
2014/02/04 职场文书
实习报告评语
2014/04/26 职场文书
社区创先争优承诺书
2014/08/30 职场文书
法人授权委托书样本
2014/09/19 职场文书
财务总监岗位职责
2015/02/03 职场文书
用电申请报告范文
2015/05/18 职场文书
男人帮观后感
2015/06/18 职场文书
忆童年!用Python实现愤怒的小鸟游戏
2021/06/07 Python