【发布时间】:2016-04-18 18:40:06
【问题描述】:
我正在尝试 vuejs,并跟随 laracasts 系列的网络广播。在https://laracasts.com/series/learning-vue-step-by-step/episodes/8 中,Jeffery Way 讨论了自定义组件。根据他的截屏,我有以下代码:
<div id="app">
<tasks list="tasks"></tasks>
</div>
<template id="tasks-template">
<ul>
<li :class="{'completed' : task.c}" @click = "task.c = ! task.c" v-for ="task in tasks">{{task.t}}</li>
</ul>
</template>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/1.0.12/vue.js"></script>
<script type="text/javascript">
vue.component('tasks', {
template: '#tasks-template',
props:['list'] // why not props:['tasks'] ??
});
new Vue({
el: '#app',
data: {
tasks: [
{t: 'go to doctor', c: false},
{t: 'go to work', c: false},
{t: 'go to store', c: true}
]
}
在这篇文章中,他讨论了如下设置道具:
props:['list']
为什么没有
props:['tasks'] ?
在http://vuejs.org/guide/components.html#Props 中声明:
每个组件实例都有自己的隔离范围。这意味着您不能(也不应该)直接引用子组件模板中的父数据。可以使用 props 将数据向下传递给子组件。“prop”是组件数据上的一个字段,预计将从其父组件向下传递。子组件需要使用 props 选项显式声明它期望接收的道具:
组件如何知道将任务数组与列表相关联?同样在这种情况下,我假设 child = 组件和 parent = vue 实例?
【问题讨论】:
标签: javascript vue.js