| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> JavaScript知识库 -> Vue修炼系列教程 - 元婴篇2 -> 正文阅读 |
|
|
[JavaScript知识库]Vue修炼系列教程 - 元婴篇2 |
前言上一期我们已经学完如何封装组件,并使用props和emit方法在父子组件中进行通信,今天我们讲一下组件中另一个很常用的知识,slot插槽(本章不用slot-scope,和slot属性,统一使用v-slot,而v-slot又可以写成#的形式底下会讲到,也是vue官方推荐的,v-slot具备了slot-scope和slot的能力) 打个广告,最底下的公众号,可以每天领外卖红包、打车优惠券,需要的可以关注一下哦 插槽我们举个场景来方便大家理解插槽,首先我们有个按钮组件,里面有个div,内容为0,点击后div中的内容会自增1,这时候有两个页面要用它,而且场景不同分别是
我们先分析一下啊,对于A页面来说很容易,直接引入组件就能实现,对于B页面呢,虽然仍然可以使用props去控制组件内div中的v-if或v-show来达到效果,但是是否有复用性更高的方式呢?这时候插槽就派上用场,插槽顾名思义就是把一个东西插到另一个东西中(vue中的插槽借助了js原生api的web-components,有兴趣可以网上查查),我们把代码敲出来 首先是组件代码
会发现,除了有点击自增的功能,会多了个slot标签,他的作用是使组件有个插槽点,可以让使用组件的地方把内容插进来,同时我们把count值赋给了slot的count属性,这么做是为了让被插入进来的内容可以获取到count值,然后看下使用组件的代码
我们先把Button组件引再来,然后我们使用一个template标签将内容使用插槽的方式插入组件中,这里几个地方解释下,首先是#count-before(语法糖,相当于v-slot:count-before),意思就是找到组件中name="count-before"的插槽点(这里又叫具名插槽,就是有名字的意思,当然也支持没有名字的情况,也叫匿名插槽,这个时候组件中插槽点不需要name值,组件使用时也不需要包裹一层template标签了,会默认插入组件中没有name值的插槽点,不过还是推荐使用具名插槽,方便维护者通过名字就能知道这个插槽的大致功能,而且插槽也可以使用组件插入),然后可以看到这里做了一层解构,解构出来的值其实对应的是组件中插槽点的属性值,也就是组件中通过slot标签传入的count属性,类似一种作用域的概念,所以我们可以直接把count拿出来做个平方,我们看看效果,随便点击几下
作业(建议自己实现一遍在看答案)组件:有个button按钮,文案为click,按钮后有个div文案为0,按钮每点击一次,文案加1 页面:点击组件,会在button和div之间显示一个div,文案为点击次数的平方,如果点击次数大于3次,隐藏这个div 答案组件代码
页面代码
效果点击3次
点击4次
总结今天讲了如何使用插槽让组件更加灵活,插槽也是日常开发中非常常用的手段,一定要掌握起来,文章还在持续更新中~?然后就是关注一下我的公众号呀,就是底下这玩意,每天能领外卖红包、打车红包,还有各种优惠卡券会员啥的,可以帮你省钱,还能购物薅羊毛,这么好的博主能有啥坏心思呢~ |
|
|
| JavaScript知识库 最新文章 |
| ES6的相关知识点 |
| react 函数式组件 & react其他一些总结 |
| Vue基础超详细 |
| 前端JS也可以连点成线(Vue中运用 AntVG6) |
| Vue事件处理的基本使用 |
| Vue后台项目的记录 (一) |
| 前后端分离vue跨域,devServer配置proxy代理 |
| TypeScript |
| 初识vuex |
| vue项目安装包指令收集 |
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年11日历 | -2025/11/23 3:15:29- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |