vue 之不得不学的之不得不学的 插槽插槽 slot
目录目录介绍插槽基础编译作用域后备内容(即默认值)具名插槽作用域插槽废弃了的语法
介绍介绍
插槽基础插槽基础
如下所示,为插槽最基础的用法。首先学习了解这些基础用法,才能更好的理解后续的作用域插槽。
插槽基础功能插槽基础功能:父组件向子组件传递数据,将父组件的数据插入到子组件中。
当我们想跟使用HTMl标签一样,向向组件传递内容时,并显示传递的内容时,就需要用到插槽。如下所示:
somethong bad happened
如果想让somethong bad happened 显示出来,就需要在Vue组件中使用元素,来实现向组件中通过如上方式插入内容。如下
所示,为的实现方式。在组件中添加标签。
Vue.component('alert-box',{
template:`
Error!
`
})
如上所示,只需在需要的地方加入 插槽,就可以像使用html标签一样,传入想要显示的数据。
在具名插槽和作用域插槽引入新的统一语法,即v-slot指令,取代了slot和slot-scope
插槽内容插槽内容
插槽内容可以包含任何模板代码,包括HTML、其它组件,如下例所示:
// 模板内容如下所示:
// 插入普通文本,如下所示,模板中的
// 会被Your Profile替换
Your Profile
//插入HTML
// 插入其它组件
// 添加一个图标组件
Your Profile
如果 没有包含一个 元素,则该组件起始标签和结束标签之间的任何内容都会被抛弃。
编译作用域编译作用域
父级模板里的所有内容都是在父级作用域中编译的;子模板里的所有内容都是在子作用域中编译的。
即父级模板有自己的作用域,它只能访问自己作用域中的数据;子模版有自己的作用域,子模版只能访问自己作用域中的数
据。
如下例子所示:
--编译作用域编译作用域--
// user为父模板中的数据,在插槽中可以访问
{{user.name}}
Vue.component('navigation-link', {
props: {
url: String
},
template: '\
\
\
\