vue.js将一个对象的所有属性作为prop进行传递

时间:2023-03-09 15:54:36
vue.js将一个对象的所有属性作为prop进行传递

1、方法一:使用不带参数的v-bind写法

<div id="app">
<child v-bind="todo"></child>
</div>

  v-bind中没有参数,而组件中的props需要声明对象的每个属性

Vue.component('child', {
props: ['text','isComplete'],
template: '<span >{{ text }} {{isComplete}}</span>'
})
new Vue({
el: '#app',
data: {
todo: {
text: 'Learn Vue',
isComplete: false
}
}
})

  显示效果如下

  vue.js将一个对象的所有属性作为prop进行传递

2、方法二:使用带参数的v-bind写法

<div id="app">
<child v-bind:todo="todo"></child>
</div>

  v-bind后跟随参数todo,组件中的props需要声明该参数,组件变可以通过todo来访问对象的属性

Vue.component('child', {
props: ['todo'],
template: '<span >{{ todo.text }} {{todo.isComplete}}</span>'
})
new Vue({
el: '#app',
data: {
todo: {
text: 'Learn Vue',
isComplete: false
}
}
})

  显示效果如下

  vue.js将一个对象的所有属性作为prop进行传递