##Transfer between Vue1.0 componentsUse $on() to listen for events;
Use $emit() to trigger events on it;
Use $dispatch() to dispatch events, which bubble along the parent chain;
Use $broadcast() to broadcast events, and events are propagated downward to all descendants
1. Pass the value from the child component to the parent component:
##Child.vue<template>
<p class="child">
<h1>子组件</h1>
<button v-on:click="childToParent">想父组件传值</button>
</p>
</template>
<script>
export default{
name: 'child',
data(){
return {}
},
methods: {
childToParent(){
this.$emit("childToParentMsg", "子组件向父组件传值");
}
}
}
</script>parent.vue
<template>
<p class="parent">
<h1>父组件</h1>
<Child v-on:childToParentMsg="showChildToParentMsg" ></Child>
</p>
</template>
<script>
import Child from './child/Child.vue'
export default{
name:"parent",
data(){
return {
}
},
methods: {
showChildToParentMsg:function(data){
alert("父组件显示信息:"+data)
}
},
components: {Child}
}
</script>
2. Parent component passes value to child component
parent.vue <template>
<p class="parent">
<h1>父组件</h1>
<Child v-bind:parentToChild="parentMsg"></Child>
</p>
</template>
<script>
import Child from './child/Child.vue'
export default{
name:"parent",
data(){
return {
parentMsg:'父组件向子组件传值'
}
},
components: {Child}
}
</script>
child.vue<template>
<p class="child">
<h1>子组件</h1>
<span>子组件显示信息:{{parentToChild}}</span><br>
</p>
</template>
<script>
export default{
name: 'child',
data(){
return {}
},
props:["parentToChild"]
}
</script>
3. Use eventBus.js to pass value ---Brother Value transfer between components
##eventBus.jsimport Vue from 'Vue'
export default new Vue()
<template>
<p id="app">
<secondChild></secondChild>
<firstChild></firstChild>
</p>
</template>
<script>
import FirstChild from './components/FirstChild'
import SecondChild from './components/SecondChild'
export default {
name: 'app',
components: {
FirstChild,
SecondChild,
}
}
</script>
<template>
<p class="firstChild">
<input type="text" placeholder="请输入文字" v-model="message">
<button @click="showMessage">向组件传值</button>
<br>
<span>{{message}}</span>
</p>
</template>
<script>
import bus from '../assets/eventBus';
export default{
name: 'firstChild',
data () {
return {
message: '你好'
}
},
methods: {
showMessage () {
alert(this.message) bus.$emit('userDefinedEvent', this.message);//传值
}
}
}
</script>
<template>
<p id="SecondChild">
<h1>{{message}}</h1>
</p>
</template>
<script>
import bus from '../assets/eventBus';
export default{
name:'SecondChild',
data(){
return {
message: ''
}
},
mounted(){
var self = this;
bus.$on('userDefinedEvent',function(message){
self.message = message;//接值
});
}
}
The above is the detailed content of Value passing problem of VUE2.0 components. For more information, please follow other related articles on the PHP Chinese website!