欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Vue2.0组件间数据传递示例

程序员文章站 2022-06-29 22:52:06
vue1.0组件间传递 使用$on()监听事件; 使用$emit()在它上面触发事件; 使用$dispatch()派发事件,事件沿着父链冒泡;...

vue1.0组件间传递

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

vue2.0后$dispatch(),$broadcast()被弃用,见-和-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组件间数据传递,希望对大家有所帮助