当前位置: 首页 > news >正文

小企业网站建设在哪能看东莞网站建设公司哪家专业

小企业网站建设在哪能看,东莞网站建设公司哪家专业,写一个网页需要什么技术,广州网站制作多少钱目录 第一章 前言 第二章 slot的基本原理及使用 2.1 原理 2.2 分类 2.3 使用 2.3.1 默认插槽 2.3.2 具名插槽 *2.3.3 作用域插槽 第三章 插槽的实际应用场景 第四章 插槽的性能优化 第五章 扩展 第六章 总结 第一章 前言 在 Vue 开发中,插槽&#xff08…

目录

第一章 前言

第二章 slot的基本原理及使用

2.1 原理

2.2 分类

2.3 使用

2.3.1 默认插槽

 2.3.2 具名插槽

*2.3.3 作用域插槽

第三章 插槽的实际应用场景

第四章 插槽的性能优化

第五章 扩展

第六章 总结


第一章 前言

在 Vue 开发中,插槽(slot)是一种强大的内容分发机制,它允许父组件向子组件传递内容,使得组件更加灵活和可复用。小编用该文章深入探讨 Vue 插槽的原理、使用方法、应用场景以及一些扩展技巧。也希望能帮住到大家,在组件封装、插槽使用中有更好的理解和运用。

第二章 slot的基本原理及使用

2.1 原理

插槽的核心思想是通过 <slot> 标签在子组件中定义一个"占位符",父组件可以在这些占位符中插入任意内容。在编译阶段vue 会识别 <slot> 标签,并将其转换为虚拟节点(VNode);在渲染阶段vue 会将父组件传递的内容插入到对应的插槽位置

2.2 分类

  • 默认插槽
  • 具名插槽
  • 作用域插槽

2.3 使用

2.3.1 默认插槽

  • 默认插槽:默认插槽是最简单的插槽形式,直接将父组件的内容插入到子组件的默认位置如果父组件没有传递内容,子组件会显示 <slot> 标签内的默认内容。
  • 示例:

-- 子组件:ChildComponent

<template><div><slot>默认内容</slot></div>
</template>

--  父组件

<template><ChildComponent><p>这是父组件传递的内容</p></ChildComponent>
</template>

解释:这里`<p>这是父组件传递的内容</p>`会渲染到页面上在子组件slot的位置上;如果父组件使用子组件ChildComponent时没有传入内容则会渲染子组件的`默认内容`到页面上

 2.3.2 具名插槽

  • 具名插槽:具名插槽允许在一个组件中定义多个插槽,并通过 name 属性区分它们。父组件可以使用 v-slot 指令(或简写 #)来指定内容插入到哪个插槽
  • 示例:

-- 子组件

<template><div><header><slot name="header">默认头部内容</slot></header><main><slot>默认主体内容</slot></main><footer><slot name="footer">默认底部内容</slot></footer></div>
</template>

-- 父组件

<template><ChildComponent><template #header><h1>这是头部内容</h1></template><p>这是主体内容</p><template #footer><p>这是底部内容</p></template></ChildComponent>
</template>

解释:与上面的默认插槽类似,但是有区别的是插槽有了区分:父组件的插槽名为header只会在子组件`<slot name="header"></slot>`展示;父组件的插槽名为footer只会在子组件`<slot name="footer"></slot>`展示

*2.3.3 作用域插槽

  • 作用域插槽: 作用域插槽允许子组件向插槽传递数据,使父组件可以在插槽内容中访问这些数据子组件通过 <slot> 标签的属性将数据传递给插槽,父组件通过 v-slot 指令接收并使用这些数据
  • 示例1:

-- 子组件

<template><div><slot :message="message"></slot></div>
</template><script setup>import { ref } from 'vue';const message = ref('这是子组件的数据');
</script>

-- 父组件

<template><ChildComponent><!-- 这种方法已经把message解构出来 --><template #default="{ message }"><p>{{ message }}</p></template></ChildComponent>
</template>

解释:利用这种方式,子组件只需要放数据在插槽内,父组件利用#default="{ message }"接收子组件的数据,然后渲染到对应的位置即可。

  • 示例2:

-- 子组件

<template><div><h3>{{title}}分类</h3><!-- :games="games"传数据给父组件使用: :定义数据名="需要传的数据名" --><slot :games="games">我是默认值</slot></div>
</template><!-- 数据在子组件中 -->
<script>export default {name:'Category',props:['title'],data() {return {games:['王者','超级玛丽','吃鸡','部落冲突'],}},}
</script>

-- 父组件

 <Category><!-- 未解构 --><template scope="data"><!-- 生成ul列表 --><ul><li v-for="(game,index) in data.games" :key="index">{{game}}</li></ul></template></Category>
<Category><!--已解构赋值--><template scope="{games}"><!-- 生成ol列表 --><ol><li v-for="(game,index) in games" :key="index" style="color:red">{{game}}</li></ol></template>
</Category>

第三章 插槽的实际应用场景

  1. 动态按钮: 通过插槽动态修改按钮的样式或内容。
  2. 列表组件: 使用作用域插槽动态渲染列表项的内容。
  3. 表单组件: 通过插槽自定义表单的输入框或按钮。
  4. 布局组件: 使用具名插槽定义不同的布局区域。
  5. ……

第四章 插槽的性能优化

插槽的使用虽然灵活,但也可能带来性能问题。以下是小编给的一些优化建议:

  • 避免过度使用插槽插槽会增加渲染开销,尽量在必要时使用。
  • 使用 v-if 控制插槽渲染: 只在需要时渲染插槽内容。
  • 缓存插槽内容: 使用 v-memo (vue3.2新增的指令) keep-alive 缓存插槽内容,减少重复渲染。

内置指令 | Vue.js

第五章 扩展

小编后面会放已经封装过了几个典例在这!!!!

  • 插槽与第三方库的结合。插槽可以与第三方库(如 Ant Design Vue、element-plus等)结合使用,进一步提升组件的灵活性。例如,通过作用域插槽自定义表格的单元格内容;或者与element-plus二次封装,添加新的功能,优化需求。
<template><a-table :columns="columns" :data-source="dataSource"><template #bodyCell="{ column, record }"><span v-if="column.key === 'name'"><a>{{ record.name }}</a></span></template></a-table>
</template>
  • 自定义组件。为了增加自定义组件的可扩展性、通用,可以使用插槽实现一些功能。
  • 实例:

【组件封装-优化】vue+element plus:二次封装select组件,实现下拉列表有分页、自定义是否可搜索的一系列功能-CSDN博客

【组件封装】致敬 Ant Design:vue用原生代码打造一个 Tab 组件,不输专业级框架!(满足基本功能,去掉antd造成tab抖动、闪动的动画)-CSDN博客

第六章 总结

总之,Vue 插槽是一种强大的内容分发机制,它通过默认插槽、具名插槽和作用域插槽提供了灵活的组件设计方式。通过合理使用插槽,可以显著提升组件的复用性和可维护性在实际开发中,结合性能优化、第三方库的使用、自定义组件等等,插槽将成为你构建复杂应用的得力工具。

http://www.dtcms.com/a/612567.html

相关文章:

  • wordpress 网站优化渗透wordpress
  • 网站的备案许可号不存在简介网站建设流程
  • 肥城市住房和城乡建设局网站怎样健建设一个有利于优化的网站
  • 网站登录页面怎么做wordpress教程网视频
  • 网站开发学习网云县网站建设
  • 网页设计设计一个网站首页昆明网站制作策划
  • 网站开发计入什么会计科目做sgs认证的公司网站
  • 网站如何规划广西住房和城乡建设厅网站首页
  • 中山网站建设乐云seo模板中心百度旗下13个app
  • 网站建设需要哪些语言跨境电商平台推广
  • wordpress搜站点网络中断二维码生成器 制作
  • cod建站平台网站建设辶首先金手指十四
  • 公司网站定制青岛微信网站建设
  • 短视频公司网站建设方案带状疱疹的预防措施
  • 网站系统维护一般多长时间html5 图片展示网站
  • 专业上海网站建设公司哪家好做网站dw怎么用
  • 北京房地产网站建设功能多的网站模板 中文内容
  • 网站建设中模板自己做网站怎么能被访问
  • 手机主题如何自己制作网站黄冈论坛网
  • 一步一步网站建设教程网站后台怎样推荐图片
  • app软件下载站seo教程动画制作用什么软件好
  • 昆明网站建设搜王道下拉免费开发软件制作平台
  • 单页面网站建设加盟教育培训机构
  • 找个免费的网站wordpress 添加外观
  • 衡水专业制作网站成都住建局官网租房交易中心
  • wordpress 导航站模板下载搜索引擎优化的方式
  • 有免费的网站建设wordpress 清除cookies
  • 怎么看网站是不是php语言做的wordpress ipc主题
  • 个人博客手机网站模板合肥seo整站优化网站
  • 高端大气的网站模板杭州房产透明售房网