JavaScript

超轻量级php框架startmvc

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

更新时间:2020-04-28 05:10:01 作者:startmvc
Vue1.0组件间传递使用$on()监听事件;使用$emit()在它上面触发事件;使用$dispatch()派发事件,

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组件间数据传递,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

vue 组件传递数据 vue2.0组件数据传递 vue组件间的数据传递