关系图:
a
t
r
r
s
:
包
含
父
作
用
域
中
不
作
为
p
r
o
p
s
被
试
别
(
且
获
取
)
的
特
性
绑
定
(
c
l
a
s
s
、
s
t
y
l
e
除
外
)
,
当
一
个
组
件
没
有
声
明
任
何
p
r
o
p
s
时
,
这
里
会
包
含
所
有
父
作
用
域
的
绑
定
(
c
l
a
s
s
、
s
t
y
l
e
除
外
)
,
且
通
过
v
?
b
i
n
d
=
"
atrrs:包含父作用域中不作为props被试别(且获取)的特性绑定(class、style除外),当一个组件没有声明任何props时,这里会包含所有父作用域的绑定(class、style除外),且通过v-bind="
atrrs:包含父作用域中不作为props被试别(且获取)的特性绑定(class、style除外),当一个组件没有声明任何props时,这里会包含所有父作用域的绑定(class、style除外),且通过v?bind="atrrs"传入父组件【父传孙专用,对于值】
l
i
s
t
e
n
e
r
s
:
包
含
作
用
域
中
(
不
含
.
n
a
t
i
v
e
修
饰
器
的
)
v
?
o
n
事
件
监
听
,
可
以
通
过
v
?
o
n
=
"
listeners: 包含作用域中(不含.native修饰器的)v-on事件监听,可以通过v-on="
listeners:包含作用域中(不含.native修饰器的)v?on事件监听,可以通过v?on="listeners"传入内部组件【孙传父专用,对于事件】
A:父组件
<template>
<div id="father">
father {{tempdata1}}-{{tempdata2}}
<button @click="fu">fu</button>
<child :temp1="tempdata1" :temp2="tempdata2" @tempFn="fahterFn" :propsValue="propsValue"></child>
</div>
</template>
<script>
import child from './child.vue';
export default {
components: { child },
data() {
return {
tempdata1: 'father1',
tempdata2: 'father2',
propsValue: '$attrs不会传递child组件中定义的props值'
}
},
created() {},
mounted() {},
computed: {},
watch: {},
methods: {
fahterFn(val1,val2) {
this.tempdata1 = val1;
this.tempdata2 = val2;
console.log('father function!',val1);
},
fu() {
this.tempdata1 = 'xixixi'
}
},
};
</script>
<style scoped lang="scss">
</style>
B:子组件
<template>
<div id="child">
<div>
child: {{$attrs}}-{{propsValue}}
</div>
<son v-bind="$attrs" v-on="$listeners"></son>
</div>
</template>
<script>
import son from './son.vue';
export default {
components: { son },
props: ['propsValue'],
data() {
return {
}
},
created() {},
mounted() {},
computed: {},
watch: {},
methods: {
},
};
</script>
<style scoped lang="scss">
</style>
C:孙组件
<template>
<div id="son">
son {{$attrs}}
<button @click="ab">dd</button>
</div>
</template>
<script>
export default {
components: {},
data() {
return {
}
},
created() {},
mounted() {
},
computed: {},
watch: {},
methods: {
ab() {
this.$emit('tempFn','dfdf','125');
}
},
};
</script>
<style scoped lang="scss">
</style>
点击fu 点击dd
|