vue3学习笔记(插槽)

简介: vue3学习笔记(插槽)
  • 父级组件中使用 <A> </A> 并且不提供任何插槽内容时,子组件中 <slot></slot>标签中的内容当作默认内容展示。
  • v-slot 只能添加在 <template(一种情况除外,当被提供的内容只有默认插槽时,组件的标签才可以被当作插槽的模板来使用。这样我们就可以把 v-slot 直接用在组件上。
  • 缩写, v-slot: 替换为字符 #。例如 v-slot:header 可以被重写为 #header。
  • 默认插槽的缩写语法不能和具名插槽混用,因为它会导致作用域不明确。
  • 多个插槽,要始终为所有的插槽使用完整的基于 <template


匿名插槽


    父组件:
      <A>
        这是xxxxx数据
        这是yyyyy数据
      </A>
    子组件:
      <header>
        <div>头部</div>
        <slot></slot>
      </header>
      <footer>
        <div>底部</div>
        <slot></slot>
      </footer>

具名插槽


        父组件:      
            <A>
        <template v-slot:xxx>
          这是xxxxx数据
        </template>
        <template v-slot:yyy>
          这是yyyyy数据
        </template>
      </A>
      ***简写:<template #xxx>
    子组件:
      <header>
        <div>头部</div>
        <slot name='xxx'></slot>
        <slot name='yyy'></slot>
      </header>

作用域插槽


绑定在 <slot > 元素上的 attribute 被称为插槽 prop。现在在父级作用域中,我们可以使用带值的 v-slot 来定义我们提供的插槽 prop 的名字,当然也可以直接解构,以下我直接使用解构。

使用解构时,可以重新命名,例如将 data 重命名为 item:


      父组件:
      <template v-slot='{data}'>
        {{ data.name }} --> {{ data.age }}
      </template>
      简写:<template #default='{data}'>
    子组件:
      <div v-for='item in list' :key='item.id'>
        <slot :data='item'></slot>
      </div>
      <script setup>
      const list = ref([
          {name:"张三",age:"21"},
        {name:"李四",age:"22"},
        {name:"王五",age:"23"},
      ])
      </script>

动态插槽


    父组件:
      <template #[xxx]>
        这是xxxxx数据
      </template>
      <script setup>
      let xxx = ref('xxx');
      </script>
目录
相关文章
|
2天前
|
JavaScript 前端开发 C++
Vue3视图渲染技术(1)
Vue3视图渲染技术(1)
6 0
Vue3视图渲染技术(1)
|
1天前
Vue3项目 小兔鲜问题总结
Vue3项目 小兔鲜问题总结
9 2
|
1天前
vue3基本指令使用
vue3基本指令使用
7 2
|
2天前
|
JavaScript 前端开发 API
Vue3入门 - vue3相比于vue2的优点,及如何创建Vue3项目
Vue3入门 - vue3相比于vue2的优点,及如何创建Vue3项目
|
3天前
Vue3——tdesign-vue-next如何按需加载动态渲染ICON
如题,在vue3中进行按需加载来动态的渲染icon图标;
8 1
|
2天前
|
JavaScript API 网络架构
Vue3路由机制router(2)
Vue3路由机制router(2)
9 0
|
2天前
|
安全 定位技术 数据安全/隐私保护
Vue3路由机制router(1)
Vue3路由机制router(1)
8 0
|
2天前
|
缓存 监控 JavaScript
Vue3视图渲染技术(2)
Vue3视图渲染技术(2)
5 0
|
2天前
|
JavaScript
Vue3 状态管理 - Pinia,超详细讲解!
Vue3 状态管理 - Pinia,超详细讲解!
|
10天前
|
开发工具 git
vite+vue3+ts从0到1搭建企业级项目(4)
vite+vue3+ts从0到1搭建企业级项目
28 0