父组件向子组件传递数据
- 父组件可以通过props向子组件传递数据。在子组件中,使用
props
选项来接收 父组件定义的数据。
// 父组件
<template>
<div class="MineralView-container">
<h1>[MineralView]</h1>
<MineralsTable :testDeliverText="testDeliverText"></MineralsTable>
</div>
</template>
data() {
return{
testDeliverText: 'test'
}
// 子组件
// 在子组件中,使用`props`选项来接收 父组件定义的数据
<div>
组件间通信: <hr>
this data is from MineralView.vue: {{testDeliverText}}
</div>
props: ['testDeliverText'],
子组件向父组件传递数据 – 通过event
<button @click="sendMessage">click, 子组件向父组件传递数据</button>
data() {
return {
title:'Hello from MineralsTable.vue'
};
},
methods: {
// 子组件向父组件传递数据
sendMessage() {
this.$emit('messageEvent', this.title);
},
<MineralsTable
:testDeliverText="testDeliverText"
@messageEvent="receiveMessage">
</MineralsTable>
<h1>{{testReceiveText}}</h1>
data() {
return{
testDeliverText: 'test',
testReceiveText: 'testReceive'
}
},
methods: {
// @messageEvent="receiveMessage" 父组件监听$emit对应事件(以接收该事件携带的数据)
// 父组件接收 子组件传递来的数据
receiveMessage(msg) {
console.log(msg);
this.testReceiveText = msg
}