本文共 842 字,大约阅读时间需要 2 分钟。
作用域插槽是一种特殊的slot,使用一个可复用的模板替换已渲染元素由于作用域插槽相对较难理解,所以在这一篇进行单独介绍
先看一个作用域插槽的例子,并和普通插槽对比:
作用域插槽传值 : {
{ props.msg }}
运行结果:
对比普通插槽:
在子组件模板中,元素上有一个类似props传递数据给组件的写法msg="xxx",将数据床底到了插槽父组件中使用了 元素,而且包含scope="props",props在这里只是临时变量,早template内可以通过临时变量props访问来自子组件插槽的数据msg
在列表组件中,使用作用域插槽:
书名:{ { props.bookName}}--售价:{ { props.bookPrice }}
运行结果:
子组件my-list绑定了父级(Vue实例)中data.books数组,为列表提供数据源在my-list子组件template中,设置slot名称并使用v-for遍历对象使用:book-name和:book-price绑定并输出数组对象的属性值,并暴露给外部插槽内容使用外部插槽内容,通过在template上定义slot名称并通过scope="props"使用子组件暴露的属性值最终完成对列表的遍历输出
对比v-for和作用域插槽的区别:
上边的例子直接在父组件使用v-for也可以实现遍历列表输出使用作用域插槽,既可以复用子组件的slot,又能使slot的内容不一致
关于作用域插槽的介绍就到这里了,下一篇介绍如何访问slot