功能描述
组件(Component)是 Vue.js 最强大的功能之一,父子组件可以通过prop属性进行参数传递。
本例实现功能描述
本例子实现了从父组件到子组件的参数传递,并且子组件也可以通过$emit方式传递参数给父组件。
[!TIP|label: 定义componentParent.vue]
在src/views/basic/sys文件下新建一个componentParent.vue页面,添加以下代码。
这里是模版添加在src/views/basic/sys,开发的时候应该放在组件文件夹下
<template>
<div>
<h2>{{ msg }}</h2>
<p>===========================</p>
<componentSon parentMsg="传递给子组件的信息" @transfer="getSonMessage"></componentSon>
</div>
</template>
<script>
import componentSon from "./componentSon"
export default {
name: "parent",
data () {
return{
msg: '父组件'
}
},
components: {
componentSon
},
methods: {
getSonMessage (msg) {
this.msg = msg
}
}
}
</script>
<style scoped>
</style>
[!TIP|label: 定义componentSon.vue]
在src/views/basic/sys文件下新建一个componentSon.vue页面,添加以下代码。
<template>
<div>
<h2>{{ msg }}</h2>
<p>子组件接收到内容:{{ parentMsg }}</p>
<input type="text" v-model="infoToParent">
<button @click="sentMsgToParent">传值给父组件</button>
</div>
</template>
<script>
export default {
name: "son",
data () {
return{
msg: '子组件',
infoToParent: ''
}
},
methods:{
sentMsgToParent(){
this.$emit('transfer',this.infoToParent)
}
},
props:['parentMsg']// 接受psMsg值
}
</script>
<style scoped>
</style>
[!TIP]
最后配置componentParent.vue的菜单,具体方法见vue方式开发指南-部署与启动里面的菜单路由配置