全栈开发之路——前端篇(9)插槽、常用api和全局api

全栈开发一条龙——前端篇
第一篇:框架确定、ide设置与项目创建
第二篇:介绍项目文件意义、组件结构与导入以及setup的引入。
第三篇:setup语法,设置响应式数据。
第四篇:数据绑定、计算属性和watch监视
第五篇 : 组件间通信及知识补充
第六篇:生命周期和自定义hooks
第七篇:路由
第八篇:传参

本文将讲述插槽,常用api和全局api。

文章目录

  • 一、插槽
    • 1.默认插槽
    • 2.具名插槽
    • 3.作用域插槽
  • 二、补充常用API
    • 1.shallowRef和shallowReactive
    • 2.readonly
    • 3. toRaw
    • 4.markRaw
    • 5.customRef
    • 6.suspense
  • 三、全局api
    • 1.app.component
    • 2.全局属性
    • 3.全局指令

一、插槽

1.默认插槽


在写自定义组件的时候,我们如果想在父组件中加入一些内容,Vue就不知道应该放在子组件的哪里了,于是它就不显示。这个时候,我们只需要在子组件中加入一个标识占位,就是默认插槽<slot></slot>,你可以在slot标签中加入默认内容,如果没内容从父组件发送过来会显示,反之不会显示

这种方法我们可以直接在父组件中操作子组件显示的页面的内容,非常方便,不需要数据传输。

2.具名插槽

如果我们想在父组件中这样操作:在子组件不同的地方插入多段内容。这种情况下,默认插槽就不好用了,我们要使用具名插槽。

我们看到这里用了template包裹了内容,这是因为具名插槽的v-slot 只能放在组件上或者template标签上。但是一旦放在组件上,我们事实上还是不能调整位置,所以我们在内容上包裹template,这样就能交错对应。

3.作用域插槽

简单来说,作用域插槽就是实现插槽的时候同时实现传参。

如图,左侧v-slot=”xx“拿到的是右边用slot传过来的所有参数,可以用法 xx.xx来提取参数。
注意,作用域插槽可以和具名插槽一起使用,活活美死

二、补充常用API

1.shallowRef和shallowReactive

只有第一层的修改是可以实现的。

假设我有这两个变量,一个是数字,一个是对象。

那我以上这四个方法,只有1和4是有效的。对于一般变量,它本身就是第一层,所以sum.value+1是有效的,而对于对象参数,person.value是第一层,person.value.name是第二层,只有第一层能修改,所以23无效而4有效。
对于reactive定义的响应式函数,例子如下

第一层式brand和options,可以修改,第二层式option.color这些,是不可以修改的。

2.readonly


用readonly可以创建一个关联关系,sum2和sum1同时变化,但sum2是只读的,不能修改,sum2可以给出去当别人访问的接口。

如果你用的是shallowReadonly,那只有第一层是只读的,后面层次是能改的,但是我们一般用readonly

3. toRaw


toRaw函数可以将响应式对象转换会普通对象(其实就是reactive括号里的对象):

应用场景:对象给别人用,但不希望他(可能是非Vue库和外部系统)改的影响我的页面

4.markRaw

标记一个对象,使其永远不会变成响应式的。


car2附响应式会失败,会将原始对象赋给car2。

5.customRef

我们知道v-model提供了双向绑定,但是v-model提供的双向绑定是即时的。如果我要求input输入之后延迟3秒再显示,就很困难了,这个时候我们就要用到customRef。

注释已经在图上了,这是基本写法,但是就这么写跟计算属性没差别,我们要充分使用其属性。

上图是实现输入后时停1s在显示的操作,其中timer是节流阀,防止数据抖动(不加的话如果输入过快,会触发多个settimeout,导致数据被覆盖丢失),其他具体注释写在图中了。
注:一般做项目的时候,都会把自定义ref写成hooks封装,然后直接调用。

6.suspense

如果我们想在setup里使用await这种异步指令,我们没地方写anysc了,这个时候就要用到suspense。异步指令(比如网络请求)如果很慢,会导致子组件加载过慢(所有加载完才出现),我们要用suspense规避这个问题。

左边suspense里有两个槽位,default是加载好显示的槽位,fallback是尚未完全加载完成时显示的槽位。

三、全局api

我们可以在app.vue中设置以加入全局设置。

1.app.component

这个api可以设置全局组件


这样设置完之后,你可以在工程的任意组件中调用****

2.全局属性

我们也可以建立全局属性,在不同的组件中都能访问,同样在app.vue中

之后你在其他组件中可以用{{x}}访问到x
如果会飘红你可以不管,不影响运行,如果你强迫症,你就声明一下,在app中加入:

就不报错了。

3.全局指令

app.directive('方法名',(element,{value})=>{})

这样可以定义全局方法。

在其他组件中你可以这么用

这样事实上样式是你在app.directive中写的样式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/12184.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Transformers中加载预训练模型的过程剖析(一)

使用HuggingFace的Transformers库加载预训练模型来处理下游深度学习任务很是方便,然而加载预训练模型的方法多种多样且过程比较隐蔽,这在一定程度上会给人带来困惑。因此,本篇文章主要讲一下使用不同方法加载本地预训练模型的区别、加载预训练模型及其配置的过程,藉此做个记…

计算机组成原理(超详解!!) 第八节 总线系统

1.总线的概念和结构形态 1.总线&#xff08;BUS&#xff09;的基本概念 是构成计算机系统的互联机构&#xff0c;是多个系统功能部件&#xff08;运算器、控制器、存储器、输入/输出设备&#xff09;之间进行数据传送的公共通路。 由传输信息的电路和管理信息传输的协议组成…

【数据结构】栈和队列专题

前言 上篇博客我们讨论了栈和队列的有关结构&#xff0c;本篇博客我们继续来讨论有关栈和队列习题 这些题算是经典了 &#x1f493; 个人主页&#xff1a;小张同学zkf ⏩ 文章专栏&#xff1a;数据结构 若有问题 评论区见&#x1f4dd; &#x1f389;欢迎大家点赞&#x1f44d…

Linux内核发送网络数据

前言 我们开始今天对 Linux 内核⽹络发送过程的深度剖析。还是按照我们之前的传统&#xff0c;先从⼀段代码作为切⼊。 上述代码中&#xff0c;调⽤ send 之后内核是怎么样把数据包发送出去的。本⽂基于Linux 3.10&#xff0c;⽹卡驱动采⽤Intel的igb举例。 基础框架 我们看…

栅格地图、障碍物地图与膨胀地图(障碍物地图(三)写一张障碍物地图)

花了不少时间看完了障碍物地图的大致思路&#xff0c;这里简单根据前面的思路来写一个简易版的障碍物地图。 1.订阅一张地图 首先&#xff0c;我们需要一张静态地图作为原始数据&#xff0c;这个我们可以订阅当前的map来获取&#xff1a; void map_test1::MapCallback(const…

财务分析软件怎么选?看这篇就够了

怎么才能选到一款真正能够用于财务分析的软件&#xff1f;且是能够又快又直观地将财务数据情况分析清楚&#xff0c;从不同角度灵活分析财务数据背后的关联的软件&#xff0c;简单来说那得选一款BI财务分析软件。具体哪款BI财务分析软件更合适&#xff1f;那就要从以下几个方面…

几款打工人必备的AI绘图软件工具分享给你!

随着人工智能技术的不断进步&#xff0c;AI绘图软件工具成为了设计师和打工人提升工作效率的得力助手。这些工具不仅能够帮助我们快速完成复杂的绘图任务&#xff0c;还能激发我们的创意灵感。在本文中&#xff0c;我将为大家介绍几款打工人必备的AI绘图软件工具&#xff0c;其…

历史影像的下载办法总结

最近想要下黄河口的历史影像&#xff0c;试验了几个办法&#xff1a; 1&#xff09;参考文献1中的办法&#xff0c;用Global Mapper下载World Imagery Wayback网站的历史数据&#xff0c;能下载从2014年至现在的&#xff1b; 2&#xff09;参考文献1中的办法&#xff0c;用SA…

vue3中教你如何使用指令解决文本的溢出提示

在我们项目开发中,经常会有超长文本溢出提示,未溢出则不提示的场景。 在项目开发中遇到了比较复杂的场景,在一个组织树中,我们使用了el-tree来显示组织树,文字长度不一,太长的显示不全&#xff0c;刚开始我们使用滚动条&#xff0c;结果不好看 后来我们就直接再el-tree中添加el…

iOS copy的正确姿势

参考文章 知识准备&#xff08;理解堆栈&#xff09; 堆区&#xff1a; 程序员管理 若程序员不释放&#xff0c;由os释放不同于数据结构中的堆&#xff0c;堆区的结构类似于数据结构中的链表栈区&#xff1a; 由编译器来管理 存放函数参数值&#xff0c;局部变量的值等结构类似…

Facebook消息群发脚本的制作思路!

在数字化社交日益盛行的今天&#xff0c;Facebook作为全球最大的社交平台之一&#xff0c;为企业和个人提供了广阔的交流与合作空间。 然而&#xff0c;手动向大量用户发送消息既耗时又低效&#xff0c;因此&#xff0c;开发一款能够自动群发消息的脚本成为了许多人的需求&…

【正点原子Linux连载】 第四十二章 多点电容触摸屏实验摘自【正点原子】ATK-DLRK3568嵌入式Linux驱动开发指南

1&#xff09;实验平台&#xff1a;正点原子ATK-DLRK3568开发板 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id731866264428 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/docs/boards/xiaoxitongban 第四十…

汇昌联信:拼多多网店该如何开店?

拼多多网店的开设流程并不复杂&#xff0c;但需要细心和耐心去完成每一步。下面将详细阐述如何开设一家拼多多网店。 一、选择商品与定位 开设拼多多网店的第一步是确定你要销售的商品类型&#xff0c;这决定了你的目标客户群体和市场定位。你需要了解这些商品的市场需求、竞争…

CAST: Cross-Attention in Space and Time for Video Action Recognition

标题&#xff1a;CAST: 时空交叉注意力网络用于视频动作识别 原文链接&#xff1a;2311.18825v1 (arxiv.org)https://arxiv.org/pdf/2311.18825v1 源码链接&#xff1a;GitHub - KHU-VLL/CASThttps://github.com/KHU-VLL/CAST 发表&#xff1a;NeurIPS-2023&#xff08;CCF A…

【打字】打字训练之针对性键盘区域练习

本文章的核心点是&#xff1a;使用代码生成自己想要训练的键位的词汇&#xff0c;然后导入到打字软件针对性练习 一个程序员突然想纠正打字习惯源于腱鞘炎&#xff0c;虽然使用双拼打字已经不慢了&#xff0c;但是姿势不是很正确&#xff0c;导致了腱鞘炎。 所以想着好好纠正指…

消息队列选型

一、要解决的问题 1.1 异步 分析&#xff1a; 需要根据场景来判断。若整体链路的逻辑中&#xff0c;某些逻辑是不需要强实时的&#xff0c;滞后一段时间是允许的&#xff0c;同时又不会对用户带来不好的体验&#xff0c;那么可以使用MQ完成异步操作。 例如&#xff1a;秒杀场…

解锁客户需求密码:银行业数据分析在业务决策中的关键作用

一、引言 在数字化和大数据时代的浪潮下&#xff0c;银行业正经历着前所未有的变革。作为数据分析领域的资深专家&#xff0c;我深知数据分析在银行业务发展中的重要性和价值。本文将从银行业数据分析的角度出发&#xff0c;深入探讨相关业务场景下的数据分析应用&#xff0c;…

UVa11419 SAM I AM

UVa11419 SAM I AM 题目链接题意分析AC 代码 题目链接 UVA - 11419 SAM I AM 题意 给出一个 RC 大小的网格&#xff0c;网格上面放了一些目标。可以在网格外发射子弹&#xff0c;子弹会沿着垂直或者水平方向飞行&#xff0c;并且打掉飞行路径上的所有目标&#xff0c;如下图所…

Java 环境变量未生效

在配置 Java 环境变量的时候&#xff0c;有可能会出现修改了JDK的路径&#xff0c;但是Java的环境变量没有相应切换的情况。比如&#xff1a; 但此时在控制台使用java -version命令输出的JDK版本不是新配置的版本&#xff0c;依然是之前的&#xff0c;甚至提示找不到java命令&a…