在
Vue
中我们使用
元素 作为承载分发内容的出口 作者称其为插槽 可以应用在组合组
件的场景中 比如准备制作一个待办事项组件(todo
) 该组件由待办标题(
todo-title
)和待办内容(
todo-items)
组成 但这三个组件又是相互独立的 该如何操作
第一步
:
定义一个待办事项的组件
<script type="text/javascript">
第二步
:
让待办事项的标题和值实现动态绑定
留出一个插槽
1
、将上面的代码留出一个插槽
,
即
slot
<slot name="todo-title">slot>\
<slot name="todo-items">slot>\
2
、定义一个名为
todo-title
的待办标题组件 和
todo-items
的待办内容组件
Vue.component('todo-title', {
template: '<div>{{title}}div>'
//这里的index,就是数组的下标,使用for循环遍历的时候,可以循环出来!
Vue.component('todo-items', {
props: ['item', 'index'],
template: '<li>{{index + 1}}. {{item}}li>'
3
、实例化
Vue
并初始化数据
todoItems: ['狂神说Java', '狂神说运维', '狂神说前端']
4
、将这些值
,
通过插槽插入
<todo-title slot="todo-title" title="秦老师系列课程">todo-title>
<todo-items slot="todo-items" v-for="(item, index) in todoItems"
v-bind:item="item" v-bind:index="index">todo-items>
说明
:
我们的
todo-title
和
todo-items
组件分别被分发到了
todo
组件的
todo-title
和
todo-items
插槽
中