我们在构建页面过程中一般会把用的比较多的公共的部分抽取出来作为一个单独的组件,但是在实际使用这个组件的时候却又不能完全的满足需求,我希望在这个组件中添加一点东西,这时候我们就需要用到插槽来分发内容。
以下文章来自掘金
作者:JH30K
链接:https://juejin.im/post/5ed61cd86fb9a047a43444d6
一、前言
vue官方文档中在"组件基础"内容中提到组件可以通过插槽分发内容,那插槽是怎么使用的呢?它要解决什么场景的问题呢?
我们在构建页面过程中一般会把用的比较多的公共的部分抽取出来作为一个单独的组件,但是在实际使用这个组件的时候却又不能完全的满足需求,我希望在这个组件中添加一点东西,这时候我们就需要用到插槽来分发内容。
注意:以下的所有内容是基于vue版本 2.6.0 起
二、插槽是什么
下面看一个例子
写一个父组件: test.vue
测试一下吧内容写在这里了能否显示
import myslot from './myslot';
export default {
components: {
myslot
}
}
写一个子组件:myslot.vue
运行代码,发现,最终渲染的效果是
大家好我是父组件
我是子组件
那如果我想实现显示父组件中p标签的内容怎么办
修改子组件:myslot.vue
现在测试一下slot
运行代码,可以看到以下效果
大家好我是父组件
我是子组件
现在测试一下slot
测试一下吧内容写在这里了能否显示
官方文档对于插槽的应用场景是这样描述的:
我们经常需要向一个组件传递内容
Vue 自定义的 元素让这变得非常简单