关于vue中v-bind后不带冒号,而带等号的说明(v-bind=“obj”)
- 由于v-bind支持
v-bind="obj"
的用法(其中obj为一个对象,譬如obj = {class: class1, style: style1}
),若你传入的obj为一个数组,比如为obj = ['a', 'b', 'c']
,那么obj会将其解析为{'0': 'a', '1': 'b', '2': 'c'}
注意:若v-bind用在slot标签中,即子组件Child.vue中模板里包含<slot v-bind="obj">{{obj.name}}</slot>
,其中obj为一个对象。不妨令obj = {name: 'kobe', age: '18'}
,若你想在使用Child组件的过程中,使用作用域插槽,即:
<Child>
<template v-slot:default="slotProps">
{{slotProps}}
</template>
</Child>
-->输出为
{name: 'kobe', age: '18'}
观察输出,可以得到一个结论:slotProps = obj。此时若要访问name属性,直接slotProps.name
即可。
- 若是Child.vue中模板里的插槽为
<slot v-bind:slot_obj="obj">{{obj.name}}</slot>
,那么使用作用域插槽,即:
<Child>
<template v-slot:default="slotProps">
{{slotProps}}
</template>
</Child>
-->输出为
{"slot_obj": {name: 'kobe', age: '18'}}
观察输出,可知,若要访问obj里的name属性,需要经过slot_obj中转一下:slotProps.slot_obj.name
。