gpt4 book ai didi

vue.js - VueJS 嵌套列表渲染与 Prop

转载 作者:搜寻专家 更新时间:2023-10-30 22:56:01 24 4
gpt4 key购买 nike

我想用 Vue.js 渲染嵌套列表,但我的代码在嵌套组件部分失败。我的主要模板:

<body>
<div id="app">
<ul>
<li v-for="todo in todos">
{{ todo.text }}
<ul>
<todo-item v-for="subtodo in todo.subTodos" v-bind:subtodo="subtodo"></todo-item>
</ul>
</li>
</ul>
</div>
</body>

还有我的js文件:

Vue.component('todo-item', {
template: '<li>{{subtodo.text}}</li>',
prop: ['subtodo']
})

var app = new Vue({
el: '#app',
data: function () {
return {
todos : [
{
text : 'Learn JavaScript',
subTodos : [
{ text : 'Linting'},
{ text : 'Bundling'},
{ text : 'Testing'}
]
},
{
text : 'Learn Vue',
subTodos : [
{ text : 'Components'},
{ text : 'Virtual DOM'},
{ text : 'Templating'}
]
},
{
text : 'Build something awesome',
subTodos : [
{ text : 'Build'},
{ text : 'Something'},
{ text : 'Awesome'}
]
}
]
}
}
})

基本上在第一层,我用v-for渲染一个数组,然后我将一个实例传递给子组件进行另一次迭代,我还v-bind当前实例,以便我可以在 child 的模板中使用它。

我这里有一个工作 fiddle :https://jsfiddle.net/ny7a5a3y/4/

控制台给我这个错误:

[Vue warn]: Property or method "subtodo" is not defined on the instance but referenced during render. Make sure to declare reactive data properties in the data option.

我错过了什么?

最佳答案

打错了,你说的prop in component 正确的是props

Vue.component('todo-item', {
template: '<li>{{subtodo.text}}</li>',
props: ['subtodo']
})

https://jsfiddle.net/uofmd96q/

关于vue.js - VueJS 嵌套列表渲染与 Prop ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41110825/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com