Vue组件数据传递 props
- 需要写在html标签里
<div id="list2">
<head-text v-bind:message = "message"></head-text>
<item v-for="item in listData" v-bind:item="item" v-bind:key="item.id"></item>
</div>
Vue.component('item', {
props: ['item'],
template: '<p>{{item.text}}</p>'
})
Vue.component('head-text', {
props: ['message'],
template: '<p>{{message}}</p>'
})
let list2 = new Vue({
el: '#list2',
data: {
listData: [
{ text: "床前明月光", id: 1 },
{ text: "疑是地上霜", id: 2 },
{ text: "举头望明月", id: 3 },
{ text: "低头思故乡", id: 4 },
],
message: "静夜思"
}
})
- 使用组件渲染时
<div id="listA"></div>
Vue.component('list', {
props: ['lD'],
data: function () {
return { data: this.lD }
},
render: function (h) {
return <div>
{this.data.map((item) => <li key={item.id}>{item.text}</li>)}
</div>
}
})
new Vue({
el: "#listA",
data: function () {
return {
listData: [
{ text: "床前明月光", id: 1 },
{ text: "疑是地上霜", id: 2 },
{ text: "举头望明月", id: 3 },
{ text: "低头思故乡", id: 4 },
]
}
},
render: function (h) {
return (<div>
<list lD={this.listData}></list>
</div>)
}
})