首页 > 其他 > 详细

Vue2.0组件间数据传递

时间:2017-01-06 16:42:48      阅读:192      评论:0      收藏:0      [点我收藏+]

Vue1.0组件间传递

  使用$on()监听事件;
  使用$emit()在它上面触发事件;
  使用$dispatch()派发事件,事件沿着父链冒泡;
  使用$broadcast()广播事件,事件向下传导给所有的后代

Vue2.0后$dispatch(),$broadcast()被弃用,见https://cn.vuejs.org/v2/guide/migration.html#dispatch-和-broadcast-替换

 

1,父组件向子组件传递场景:Father上一个输入框,根据输入传递到Child组件上。

父组件:

<template>
  <div>
    <input type="text" v-model="msg">
    <br>
    //将子控件属性inputValue与父组件msg属性绑定
    <child :inputValue="msg"></child>
  </div>
</template>
<style>

</style>
<script>
  export default{
    data(){
      return {
        msg: ‘请输入‘
      }
    },
    components: {
      child: require(./Child.vue)
    }
  }
</script

子组件:

<template>
  <div>
    <p>{{inputValue}}</p>
  </div>
</template>
<style>

</style>
<script>
    export default{
        props: {
          inputValue: String
        }
    }
</script>

2,子组件向父组件传值场景:子组件上输入框,输入值改变后父组件监听到,弹出弹框

 

 父组件:

<template>
  <div>
//message为子控件上绑定的通知;recieveMessage为父组件监听到后的方法
    <child2 v-on:message="recieveMessage"></child2>
  </div>
</template>
<script>
  import {Toast} from mint-ui
  export default{
    components: {
      child2: require(./Child2.vue),
      Toast
    },
    methods: {
      recieveMessage: function (text) {
        Toast(监听到子组件变化+text);
      }
    }
  }
</script>

子组件:

 

<template>
  <div>
    <input type="text" v-model="msg" @change="onInput">
  </div>
</template>
<script>
  export default{
    data(){
      return {
        msg: ‘请输入值‘
      }
    },
    methods: {
      onInput: function () {
        if (this.msg.trim()) {
          this.$emit(message, this.msg);
        }
      }
    }
  }
</script>

 

Vue2.0组件间数据传递

原文:http://www.cnblogs.com/Zsmile/p/6256651.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!