Vue 父子组件传递数据
Vue父组件给子组件传值:
父组件:
<template>
<div class="father">
{{ message }}
<Son v-bind:message="message"></Son>
</div>
</template>
<script>
//导入Son组件
import Son from "./Son";
export default {
name: "father",
data() {
return {
message: "hello, father",
};
},
components: {
Son,
},
methods: {},
};
</script>
子组件:
<template>
<div class="son">子元素: {{ message }}</div>
</template>
<script>
export default {
name: "son",
props: {
message: {
type: String,
default: "",
},
},
data() {
return {};
},
};
</script>
父组件传子组件,props是关键;
Vue子组件给父组件传值:
父组件:
<template>
<div class="father">
<p>{{ message }}</p>
<!-- @receiveData="receiveData"一定要写在子标签上 -->
<Son v-bind:message="message" @receiveData="receiveData"></Son>
</div>
</template>
<script>
//导入Son组件
import Son from "./Son";
export default {
name: "father",
data() {
return {
message: "hello, father",
};
},
components: {
Son,
},
methods: {
/**
* 接收子组件数据
*/
receiveData(message) {
this.message = message;
},
},
};
</script>
子组件:
<template>
<div class="son">
<p>子元素: {{ message }}</p>
<button @click="transferData">click</button>
</div>
</template>
<script>
export default {
name: "son",
props: {
message: {
type: String,
default: "",
},
},
data() {
return {};
},
methods: {
transferData() {
//调用父组件接收子组件数据方法,传递数据
this.$emit("receiveData", "son数据:hello, father!");
},
},
};
</script>
子组件传父组件,emit方法是关键;

浙公网安备 33010602011771号