组件 - 从 parent 获取数据?
Component - getting data from parent?
我正在学习 Vue.js,我不明白为什么 <li>{{task.body}}</li>
没有显示在屏幕上。
我已经创建了 <tasks v-for="task in tasks"></tasks>
组件,它需要访问来自 parents 的数据。
参见:https://jsfiddle.net/pd03t1vm/
HTML:
<div id="app">
<tasks v-for="task in tasks"></tasks>
</div>
<template id="tasks-template">
<ul>
<li>{{task.body}}</li>
</ul>
</template>
JS:
Vue.component('tasks', {
template: '#tasks-template',
});
new Vue({
el: '#app',
data: {
tasks: [
{body: 'Task 1 Something', completed: false},
{body: 'Task 2 Something', completed: true},
{body: 'Task 3 Something', completed: false},
{body: 'Task 4 Something', completed: false}
]
}
});
问题是你从根组件中的数据实例化<tasks>
组件,但是你没有将当前任务传递给<tasks>
组件,所以它根本无法访问它.
The Vue.js guide explains how to pass the data into a component using props:
首先需要将当前的tasks
绑定到<task>
组件
的prop(这里我称之为item
)
<div id="app">
<tasks v-for="task in tasks" :item="task"></tasks>
</div>
请注意,您使用 属性 名称前的 :
绑定实际对象。
现在需要在<tasks>
组件中定义item
属性:
Vue.component('tasks', {
props: ['item'],
template: '#tasks-template',
});
顺便说一下:您的代码创建了 <tasks>
组件的四个实例,以防万一您感到疑惑 - 这可能不是您期望代码执行的操作。
我正在学习 Vue.js,我不明白为什么 <li>{{task.body}}</li>
没有显示在屏幕上。
我已经创建了 <tasks v-for="task in tasks"></tasks>
组件,它需要访问来自 parents 的数据。
参见:https://jsfiddle.net/pd03t1vm/
HTML:
<div id="app">
<tasks v-for="task in tasks"></tasks>
</div>
<template id="tasks-template">
<ul>
<li>{{task.body}}</li>
</ul>
</template>
JS:
Vue.component('tasks', {
template: '#tasks-template',
});
new Vue({
el: '#app',
data: {
tasks: [
{body: 'Task 1 Something', completed: false},
{body: 'Task 2 Something', completed: true},
{body: 'Task 3 Something', completed: false},
{body: 'Task 4 Something', completed: false}
]
}
});
问题是你从根组件中的数据实例化<tasks>
组件,但是你没有将当前任务传递给<tasks>
组件,所以它根本无法访问它.
The Vue.js guide explains how to pass the data into a component using props:
首先需要将当前的tasks
绑定到<task>
组件
item
)
<div id="app">
<tasks v-for="task in tasks" :item="task"></tasks>
</div>
请注意,您使用 属性 名称前的 :
绑定实际对象。
现在需要在<tasks>
组件中定义item
属性:
Vue.component('tasks', {
props: ['item'],
template: '#tasks-template',
});
顺便说一下:您的代码创建了 <tasks>
组件的四个实例,以防万一您感到疑惑 - 这可能不是您期望代码执行的操作。