vue 使用Slot 分发内容及props数据传递

我对solt的理解是当组件中某一项需要单独定义,那么就应该使用solt。 举例说明。例如项目中需要一个模态框提示 付款成功,付款失败。那么这个模态框也就仅仅差这几个字或者是状态图片而已。那么此时应用solt就是一个非常不错的选择。
最初在 标签中的任何内容都被视为备用内容。备用内容在子组件的作用域内编译,并且只有在宿主元素为空,且没有要插入的内容时才显示备用内容。

单个slot情况

//index.html




Vue 测试实例 - 菜鸟教程(runoob.com)



    你是谁

输出结果:


vue 使用Slot 分发内容及props数据传递_第1张图片

我们发现写在 children模板内部的span被默认删除了。如果想让span显示那么此刻就应该使用slot。
代码实例:对index.html的代码做如下修改

//index.html




Vue 测试实例 - 菜鸟教程(runoob.com)



    你是谁
vue 使用Slot 分发内容及props数据传递_第2张图片

那么此时span标签的内容就被渲染出来了。如果在childrem中如果不写span标签那么slot默认会渲染slot里面的内容。


vue 使用Slot 分发内容及props数据传递_第3张图片

具名slot

上面案例中讲解的是当组件的模板中有一个slot的方法,那么一个组件中如果想使用多个slot那么此时就应该使用具名slot。 元素可以用一个特殊的属性 name 来配置如何分发内容。多个 slot 可以有不同的名字。具名 slot 将匹配内容片段中有对应 slot 特性的元素。仍然可以有一个匿名 slot ,它是默认 slot ,作为找不到匹配的内容片段的备用插槽。如果没有默认的 slot ,这些找不到匹配的内容片段将被抛弃。
代码实例:对index.html的代码做如下修改:





Vue 测试实例 - 菜鸟教程(runoob.com)



    我是header

    这个是默认的没有具名的solt

    我是footer

vue 使用Slot 分发内容及props数据传递_第4张图片

给slot添加事件并通过props将改变的数据value值传递给子组件children

代码实例:对index.html的代码做如下修改:

//index.html




Vue 测试实例 - 菜鸟教程(runoob.com)



    {{value}}

    这个是默认的没有具名的solt

    我是footer

vue 使用Slot 分发内容及props数据传递_第5张图片

点击“点我试试”后结果如下如所示:


vue 使用Slot 分发内容及props数据传递_第6张图片

你可能感兴趣的:(vue 使用Slot 分发内容及props数据传递)