子传父
- 内置组件之间写一个事件 @click="enters" 第一步
- 在自定义组件中设置methods 定义函数方法 this.$emit('组件中定义的名称',data里面的数据) 第二步
- 在父级methods中声明函数方法 bbb(e){e 就是子组件里面data的参数}
<div class="box">
<h1>{{info.name}}--{{info.age}}--{{info.city}}</h1>
<h2>
<name1 @aaa="bbb" :arr="info"></name1>
</h2>
</div>
<script>
new Vue({
el: '.box',
data: {
info: {
name: "吴永谊",
age: 18,
city: '北京'
}
},
methods: {
bbb(e){
console.log(e) //第三步 获取数值
},
components: {
name1: { // 第一步 定义点击事件
template: `<p @click="enters">{{infoNew.uname}}</p>`,
data() {
return {
infoNew: {
uname: '王添豪',
uage: 10,
ucity: '埃及'
}
}
},
methods: { //第二步 处理函数
enters() {
this.$emit('aaa', this.infoNew)
}
},
}
}
})
</script>
父传子
- 在模板中定义:arr="data里面参数" 暴露出去
- 在内置组件中用props以数组的形式接受 props:[arr]
- 就可以在内置组件中直接使用了
-
<div class="box">
<h2>
<name1 :arr="info"></name1>
</h2>
</div>
<script>
new Vue({
el: '.box',
data: {
info: {
name: "吴永谊",
age: 18,
city: '北京'
}},
components: {
name1: {
template: `<p @click="enters">{{arr.name}}</p>`,
data() {
return {
infoNew: {
uname: '王天豪',
uage: 10,
ucity: '埃及'
}}},
props: ['arr']
}
}
})
</script>