美文网首页
Vue 的插槽语法

Vue 的插槽语法

作者: 卡拉咖啦 | 来源:发表于2019-08-03 12:35 被阅读0次

<slot></slot> 用于决定组件起始标签和结束标签之间的内容在组件模板中的渲染位置,没有插槽的话,组件标签中的内容不会渲染;

语法

1.插槽可以有后备内容,<slot><p>1</p>k</slot>,后备内容在子标签之间没有内容的时候会渲染;
2.插槽可以有名字(具名插槽),<slot name="xxx"></slot>,默认情况下,name 属性是 default
使用:在组件标签之间使用 有 v-slot 属性的<template> 标签,通过这样的方式告诉编译器把这部分内容放到 name 为 xxx 的插槽位置

<template v-slot:xxx>
  <p>place these paragraph in xxx slot.</p>
</template>

注意,一个具名插槽只能添加在一个 template 上,即,只能有一个地方执行这个具名插槽,其它的都指向默认插槽

3.方向通信,把子组件的数据,传到子组件起始标签和结束标签之间使用
1)在组件内部(在 slot 元素 v-bind: 一个数据):

//子组件内的 user 作为 `<slot>` 元素的 user 特性绑定上去
<slot v-bind:user="user">
 {{user}}
</slot>

2)在组件标签之间(父级作用域)

//slotProps(可以自己改名字) 包含了所有子组件没传过来的数据,比如上面传来的 user
<template v-slot:default="slotProps">
  {{ slotProps.user.firstName }}
</template>

3)如果,只有默认插槽,那么我们可以简写:

//直接把 v-slot:default="xxx" 写在组件标签上;而且 `:default` 可以简写
<current-user v-slot="slotProps">
  {{ slotProps.user.firstName }}
</current-user>

4)在只有默认插槽的时候,v-slot:default="xxx"可以简写为 v-slot="xxx"

5)另外一种简写:v-slot: 可以简写为 #
注意,用#简写 v-slot:的时候,default 不能不写,即,#="xxx" 没法代表v-slot:defult="xxx",正确的写法是:#default="xxx"

总结下来:

1.用 v-slot:xxx 指向名字为 xxx 的插槽
2.用 v-slot:xxx="yyy", 接收 xxx 插槽 v-bind 的数据,所有数据组合成一个对象,给这个对象命名 yyy

相关文章

  • vue 插槽

    插槽语法是Vue实现的内容分发API,用于复合组件开发。 匿名插槽 具名插槽 作用域插槽 将内容分发到子组件指定位置

  • Vue插槽

    插槽 插槽语法是Vue实现的内容分发API,用于复合组件开发。该技术在通用组件库开发中有大量应用。 匿名插槽 子组...

  • vue 组件插槽

    一、vue插槽有什么用 插槽语法是vue中实现内容分发的api,用于复合组件开发。该技术在通用组件库开发中有大量应...

  • Vue 的插槽语法

    用于决定组件起始标签和结束标签之间的内容在组件模板中的渲染位置,没有插槽的话,组件标签中的内容不会渲染; 语法 1...

  • 10个vue技巧

    slots 新语法向 3.0 看齐 ❝使用带有“#”的新命名插槽缩写语法,在Vue 2.6.0+中可用?❞ [图片...

  • Vue技巧点

    更漂亮的插槽语法 随着Vue 2.6的推出,已经引入了插槽的简写方式,可用于事件(例如,@click 表示 v-o...

  • Vue3.0 组件的核心概念_插槽

    Vue 在 2.6 版本中,对插槽使用 v-slot 新语法,取代了旧语法的 slot 和 slot-scope,...

  • Vue插槽

    插槽语法是Vue 实现的内容分发 API,用于复合组件开发。该技术在通用组件库开发中有大量应用。 匿名插槽 具名插...

  • Vue 插槽 废弃语法

  • Vue 插槽 新语法

网友评论

      本文标题:Vue 的插槽语法

      本文链接:https://www.haomeiwen.com/subject/vpljdctx.html