Vue.js专区Vue.jsVue.js开发技巧

vue父子组件通信

2017-08-25  本文已影响243人  玄月府的小妖在debug

1.子组件获取父组件data

子组件为bbb
父组件为aaa
bbb想要获取aaa里的msg,msg1

<bbb :m="数据" ></bbb>
父组件的写法
props: {
    'm': {
        type: String,
        default: ''
    },
    'myMsg': {
        type: String,
        default: ''
    }
}
e.g.

1.父组件获取子组件data

思路
vm.$emit(事件名,数据)
实例
  1. 子组件bbb自己定义数据
  2. 子组件bbb定义method 发送数据
  1. 子组件bbb触发click事件去发送消息
    bbb



    4.aaa父组件使用bbb子组件时去接收消息 用@+事件名
    aaa



    5.aaa里面的get方法获取cmsg的值

单一事件通信管理

在整个vue上绑定一个事件总线

var Event=new Vue();

    Event.$emit(事件名称, 数据)

    Event.$on(事件名称,function(data){
        //data
    }.bind(this));

项目实例:
event.js

import Vue from 'vue'

//Vue 全局注册事件总线
const EventBus = new Vue()
Object.defineProperties(Vue.prototype, {
  $bus: {
    get: function () {
      return EventBus
    }
  }
});

发送消息

this.$bus.$emit("transform_sql_config", this.$data.sql_config)

接收消息

this.$bus.$on("transform_sql_config", this.formatData)

最后,还可以使用vuex状态管理
记录:https://zhuanlan.zhihu.com/p/30352291?utm_medium=social&utm_source=wechat_timeline&from=groupmessage&isappinstalled=0

上一篇 下一篇

猜你喜欢

热点阅读