这篇文章的写作时间是 vue2.6 发布后,因此适用于 2.6 以后的版本
插槽是 vue 组件中很重要的一环,他解决了组件内容自定义的问题。以及父子组件变量传递的问题(作用域插槽)。
在 2.6 以后的版本中,具名插槽和作用域插槽引入了一个新的统一的语法 (即 v-slot 指令),它取代了 slot 和 slot-scope 。这两个老的已经进入废弃期,为了保持平滑升级,目前还可以使用,但是不推荐使用。后期会被移除。
简单插槽使用
v-slot.vue
1 | <template> |
在其他组件中使用
1 | <v-slot></v-slot> |
具名插槽使用
v-slot-name.vue
1 | <template> |
在其他模块中使用
1 | <h2>新的使用方式 使用v-slot:插槽名称</h2> |
作用于插槽使用
v-slot-scope.vue
1 | <template> |
在其他模块中调用
1 | <h1>作用域插槽</h1> |
实例代码
https://gitee.com/shooke/vue-demo/tree/master/vue-demo-slot
具体参考文件如下
vuedemo/src/views/slot.vue 使用组件的视图文件
vuedemo/src/components/v-slot-name.vue 具名插槽组件
vuedemo/src/components/v-slot-scope.vue 作用域插槽组件
vuedemo/src/components/v-slot.vue 普通域插槽组件