使用slot分发内容

Posted 半夏微澜ぺ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用slot分发内容相关的知识,希望对你有一定的参考价值。

为了让组件可以组合,我们需要一种方式来混合父组件的内容与子组件的模板。这个过程被称为 内容分发

使用特殊的<slot>元素作为原始内容的插槽

除非子组件模板包含至少一个<slot>插口,否则父组件的内容将会被丢弃。当子组件只有一个没有属性的slot时,父组件整个内容片断将插入到slot所在DOM位置,并替换掉slot标签本身。

最初在<slot>标签中的任何内容都被视为 备用内容。备用内容在子组件的作用域内编译。并且只有在宿主元素为空,且没有要插入的内容时才显示备用内容。

具名 Slot

<slot> 元素可以用一个特殊的属性 name来配置如何分发内容。多个slot可以用不同的名字。具名slot将匹配内容片断中有对应slot特性的元素。

仍然可以有一个匿名 slot,它是默认 slot,作为找不到匹配的内容片段的备用插槽。如果没有默认的 slot,这些找不到匹配的内容片段将被抛弃。

 

子组件索引

尽管有props和events,但是有时任然需要在javascript中直接访问子组件。为此可以使用ref为子组件指定一个索引ID,

<div id="parent">

  <user-profile ref="profile"></user-profile>

</div>

var parent=new Vue({el:‘#parent‘});

var child=parent.$refs.profile,

当 ref 和v-for一起使用时,ref是一个数组,包含相应的子组件。

$refs 只在组件渲染完成后才填充,并且它是非响应式的。它仅仅作为一个直接访问子组件的应急方案——应当避免在模板或计算属性中使用 $refs

这意味着 PascalCase 是最通用的 声明约定 而 kebab-case 是最通用的 使用约定

 

以上是关于使用slot分发内容的主要内容,如果未能解决你的问题,请参考以下文章

插槽分发内容

使用 Vuejs 对 Table 组件进行 Slot 内容分发

vue2.0 slot 分发内容

使用slot分发内容

Vue内容分发slot

Vue内容分发slot