Tôi đang thử các vuejs bằng cách làm theo cùng với loạt các đợt phát sóng trên webcast về điều này. Trong https://laracasts.com/series/learning-vue-step-by-step/episodes/8, Jeffery Way thảo luận về các thành phần tùy chỉnh. Tôi có đoạn code sau đây dựa trên thu hình màn ảnh của mình:Tìm hiểu về các đạo cụ thành phần trong VueJS
<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}
]
}
Trong này, ông thảo luận về cách thiết lập các đạo cụ như sau:
props:['list']
Tại sao nó không
props:['tasks'] ?
Trong http://vuejs.org/guide/components.html#Props nó khẳng định:
Mọi comp instance onent có phạm vi riêng biệt. Điều này có nghĩa là bạn không thể (và không nên) trực tiếp tham chiếu dữ liệu gốc trong mẫu của thành phần con. Dữ liệu có thể được chuyển xuống thành phần con bằng cách sử dụng props.A "prop" là một trường trên dữ liệu của một thành phần dự kiến sẽ được chuyển xuống từ thành phần cha của nó. Thành phần con cần tuyên bố rõ ràng các đạo cụ mà nó dự kiến sẽ nhận được bằng cách sử dụng tùy chọn đạo cụ:
Thành phần này biết cách liên kết mảng nhiệm vụ với danh sách như thế nào? Cũng trong trường hợp này, tôi giả sử child = component và parent = vue instance?
Làm thế nào để dữ liệu: nhiệm vụ [] array từ dụ xem trở nên có sẵn cho ràng buộc để liệt kê = "nhiệm vụ"? Tôi đoán, sau khi đọc những gì bạn đã viết là nó có sẵn trong phạm vi phần tử mẫu xem - tức là
– user61629Mọi thứ bên trong '# app' div đều có sẵn từ ví dụ Vue chính. Điều gì xảy ra là trường hợp vue chính có quyền truy cập vào thành phần và thành phần, vì mỗi cá thể vue luôn phơi bày những gì bên trong 'data' và' props'. Vì vậy, thuộc tính 'list' thuộc về thành phần, nhưng có thể truy cập được tới cá thể chính thông qua thành phần –
Cảm ơn sự giúp đỡ của bạn! – user61629