每天10个vue面试题(九)
1、如何在组件中批量使用Vuex的getter属性?
- 使用mapGetters辅助函数, 利用对象展开运算符将getter混入computed 对象中
- computed:{
- ...mapGetters(['total','discountTotal'])
- }
2、vue2和vue3的区别?
- 双向数据绑定不同:vue2 的双向数据绑定是利用ES5 的一个 API Object.definePropert()对数据进行劫持 结合 发布订阅模式的方式来实现的。vue3 中使用了 es6 的 Proxy 对数据代理
- 根节点不同:Vue3支持碎片(Fragments),vue2中必须要有根标签。vue3中可以没有根标签,会默认将多个根标签包裹在一个fragement虚拟标签中,有利于减少内存
- Vue2使用选项式API(Options API),Vue3引入了组合式API(Composition API)
- 性能体积:Vue 3相比Vue 2在速度上更快,体积更小。Vue 3重写了虚拟DOM,优化了响应式系统的实现。
- 生命周期不同:创建前:beforeCreate -> 使用setup()
- 创建后:created -> 使用setup()
- 挂载前:beforeMount -> onBeforeMount
- 挂载后:mounted -> onMounted
- 更新前:beforeUpdate -> onBeforeUpdate
- 更新后:updated -> onUpdated
- 销毁前:beforeDestroy -> onBeforeUnmount
- 销毁后:destroyed -> onUnmounted
- 异常捕获:errorCaptured -> onErrorCaptured
- diff算法不同
- 更好的支持ts
- v-if和v-for优先级不同:在vue2中v-for的优先级高于v-if,可以放在一起使用,但是会带来性能上的浪费;在vue3中v-if的优先级高于v-for,一起使用会报错。可以通过在外部添加一个标签,将v-for移到外层
3、defineProperty和proxy的区别?
- Vue2 中在实例初始化时遍历 data 中的所有属性,并使用 Object.defineProperty 把这些属性全部转为 getter/setter。这样当追踪数据发生变化时,setter 会被自动调用。
但是存在以下问题:
1. 添加或删除对象的属性时,Vue 检测不到。因为添加或删除的对象没有在初始化进行响应式处理,只能通过$set 来调用Object.defineProperty()处理。
2. 无法监控到数组下标和长度的变化。
- Vue3 使用 Proxy 来监控数据的变化。Proxy 是 ES6 中提供的功能,其作用为:用于定义基本操作的自定义行为(如属性查找,赋值,枚举,函数调用等)。相对于Object.defineProperty(),其有以下特点:
1. Proxy 直接代理整个对象而非对象属性,这样只需做一层代理就可以监听同级结构下的所有属性变化,包括新增属性和删除属性。
2. Proxy 可以监听数组的变化。
4、vue3为什么要用proxy?
- Proxy 是创建对象的虚拟表示,提供了 set 、get 和 deleteProperty 等处理器,这些处理器可在访问或修改原始对象上的属性时进行拦截,有以下特点∶
- 不需用使用 Vue.$set 或 Vue.$delete 触发响应式。
- 全方位的数组变化检测,消除了Vue2 无效的边界情况。
- 支持 Map,Set,WeakMap 和 WeakSet。
5、vue3 Composition API(组合式api) 是什么?
- 组合式 API (组合式API) 是一系列 API 的集合,使我们可以使用函数而不是声明选项的方式书写 Vue 组件。它是一个概括性的术语,涵盖了以下方面的 API:
- 响应式 API:例如 ref() 和 reactive(),使我们可以直接创建响应式状态、计算属性和侦听器。
- 生命周期钩子:例如 onMounted() 和 onUnmounted(),使我们可以在组件各个生命周期阶段添加逻辑。
- 依赖注入:例如 provide() 和 inject(),使我们可以在使用响应式 API 时,利用 Vue 的依赖注入系统。
- 主要目的是:为了增强代码的可读性和可维护性;允许相同逻辑代码在不同组件中进行完整复用
6、组合式api和选项式api区别 / 优缺点?
- 选项式:
一、优点:
1,简单易用:选项式API提供了一些预定义的选项,使得开发者可以快速构建API。
2,可靠性高:选项式API的选项是由API提供者预先定义的,经过测试和验证,可靠性较高。
3,集成容易:选项式API提供了一些预定义的选项,使得开发者无需具备过多的集成能力。
二、缺点:
1,灵活性差:选项式API的选项是由API提供者预先定义的,开发者无法自由地组合API。
2,可复用性差:选项式API的选项仅适用于特定情况,不能被其他场景重复使用。
3,可扩展性差:选项式API的选项是由API提供者预先定义的,如果需要增加新的选项,需要API提供者进行更新。
- 组合式:
一、优点:
1,灵活性高:组合式API可以根据具体需求组合不同的API,实现更加灵活的功能。
2,可复用性好:组合式API中的每个API可以独立使用或者组合使用,使得API的复用性更高。
3,可扩展性强:组合式API可以通过不断增加新的API来扩展功能。
二、缺点:
1,复杂度高:组合式API中的每个API都需要单独维护,当API数量增多时,会增加系统的复杂度。
2,集成难度大:组合式API需要对API进行组合,需要开发者具备一定的集成能力。
3,可靠性低:组合式API的可靠性取决于每个API的稳定性,如果其中一个API出现问题,整个系统都会受到影响。
7、Vue3中的Teleport是什么?它的作用是什么?
- Vue3中的Teleport 是控制渲染位置的新指令。它的作用是在DOM中移动一个组件的内容而不改变组件的父级。
8、Vue3中的Suspense是什么?它的作用是什么?
- Vue3中的Suspense是Vue3中新增的一个组件,它的作用是实现延迟加载和错误处理。在组件中加入Suspense,可以让异步组件可以渲染出加载状态,并且如果异步组件加载时出现错误,也能够处理这些错误。
9、Vue3中的Fragment是什么?它的作用是什么?
- Vue3中的Fragment是用来承载多个子元素的虚拟组件。它的作用是可以解决在Vue2中,使用v-for迭代元素时需要添加一个包装元素的问题。
10、Vue3中setup是什么?
- setup是所有CompositionAPI(组合API)的基础,组件中所用到的数据、方法等都需要在setup中进行配置;<script setup>
相关文章:
每天10个vue面试题(九)
1、如何在组件中批量使用Vuex的getter属性? 使用mapGetters辅助函数, 利用对象展开运算符将getter混入computed 对象中computed:{ ...mapGetters([total,discountTotal]) } 2、vue2和vue3的区别? 双向数据绑定不同:vue2 的双向数据绑定…...
Jenkins的环境部署
day22 回顾 Jenkins 简介 官网Jenkins Jenkins Build great things at any scale The leading open source automation server, Jenkins provides hundreds of plugins to support building, deploying and automating any project. 用来构建一切 其实就是用Java写的一个项目…...
八、鸿蒙开发-网络请求、应用级状态管理
提示:本文根据b站尚硅谷2024最新鸿蒙开发HarmonyOS4.0鸿蒙NEXT星河版零基础教程课整理 链接指引 > 尚硅谷2024最新鸿蒙开发HarmonyOS4.0鸿蒙NEXT星河版零基础教程 文章目录 一、网络请求1.1 申请网络访问权限1.2 安装axios库1.2.1 配置环境变量1.2.2 第二步&…...
经验笔记:Git 中的远程仓库链接及上下游关系管理
Git 中的远程仓库链接及上下游关系管理 1. 远程仓库的链接信息 当你克隆一个远程仓库时,Git 会在本地仓库中记录远程仓库的信息。这些信息包括远程仓库的 URL、默认的远程名称(通常是 origin),以及远程仓库中的所有分支和标签。…...
Paint 学习笔记
目录 ippaint 外扩对象 LCM_inpaint_Outpaint_Comfy: 不支持文字引导 ippaint https://github.com/Sanster/IOPaint 外扩对象 https://www.iopaint.com/models/diffusion/powerpaint_v2 GitHub - open-mmlab/PowerPaint: [ECCV 2024] PowerPaint, a versatile …...
Jenkins修改LOGO
重启看的LOGO和登录页面左上角的LOGO 进入LOGO存在的目录 [roottest-server01 svgs]# pwd /opt/jenkins_data/war/images/svgs [roottest-server01 svgs]# ll logo.svg -rw-r--r-- 1 jenkins jenkins 29819 Oct 21 10:58 logo.svg #jenkins_data目录是我挂载到了/opt目录&…...
kafka是如何做到高效读写
消息持久化: Kafka 将消息存储在磁盘上,并且通过顺序写入的方式提高写入性能。 消息被追加到日志文件的尾部,避免了随机写操作,从而提高了写入速度。零拷贝技术:利用操作系统的零拷贝特性,数据可以从磁盘直…...
Intern大模型训练营(九):XTuner 微调实践微调
本节课程的视频和教程都相当清晰,尤其是教程,基本只要跟着文档,在开发机上把指令都相同地输出一遍,就可以完成任务(大赞),相当顺利。因此,这里的笔记就不重复赘述步骤,更…...
从一次java.io.StreamCorruptedException: invalid stream header: 48656C6C 错误中学到的调试思路
问题场景: 在项目中,我试图使用 Java 的 ObjectInputStream 反序列化一个对象。代码逻辑看似简单:读取字节流,将其转为 Java 对象。然而,程序抛出了以下异常: java.io.StreamCorruptedException: invalid…...
树莓派的发展历史
树莓派(Raspberry Pi)是由英国的树莓派基金会开发的一系列单板计算机,其目标是为了促进计算机科学教育,同时提供廉价的计算机硬件平台。 1. 诞生背景与初代模型(2006-2012) 背景:树莓派的概念起…...
K8S containerd拉取harbor镜像
前言 接前面的环境 K8S 1.24以后开始启用docker作为CRI,这里用containerd拉取 参考文档 正文 vim /etc/containerd/config.toml #修改内容如下 #sandbox_image "registry.aliyuncs.com/google_containers/pause:3.10" systemd_cgroup true [plugins.…...
Ubuntu 环境下通过 Apt-get 安装软件
操作场景 为提升用户在云服务器上的软件安装效率,减少下载和安装软件的成本,腾讯云提供了 Apt-get 下载源。在 Ubuntu 环境下,用户可通过 Apt-get 快速安装软件。对于 Apt-get 下载源,不需要添加软件源,可以直接安装软…...
vue使用List.forEach遍历集合元素
需要遍历集合对其每个元素进行操作时,可以使用forEach方法 1.语法:集合.forEach ( 定义每一项 > 定义每一项都要进行的逻辑 ) 2、使用场景: //例如需要给每个员工的工资数量加1000this.personList.forEach(item>item.salary100…...
ROM修改进阶教程------安卓14去除修改系统应用后导致的卡logo验证步骤 适用安卓13 14 安卓15可借鉴参考
上期的博文解析了安卓14 安卓15去除系统应用签名验证的步骤解析。我们要明白。修改系统应用后有那些验证。其中签名验证 去卡logo验证 与可降级安装应用验证等等的区别。有些要相互结合使用。今天的博文将对修改系统应用后卡logo验证做个步骤解析。 通过博文了解💝💝�…...
苹果macbook,MacOS 11,12,13,14,15 跳过监管锁(配置锁)
第一步:进入恢复模式 长按电源键关机,再长按开机进入恢复模式。(M,Intel芯片方法不同) 第二步:复制代码 右上角联网,打开Safari,地址栏输入http://i7q.cn/61NWfQ。复制以下命令&am…...
【YOLOv8】安卓端部署-2-项目实战
文章目录 1 准备Android项目文件1.1 解压文件1.2 放置ncnn模型文件1.3 放置ncnn和opencv的android文件1.4 修改CMakeLists.txt文件 2 手机连接电脑并编译软件2.1 编译软件2.2 更新配置及布局2.3 编译2.4 连接手机 3 自己数据集训练模型的部署4 参考 1 准备Android项目文件 1.1…...
第二十四章 Spring之源码阅读——AOP篇
Spring源码阅读目录 第一部分——IOC篇 第一章 Spring之最熟悉的陌生人——IOC 第二章 Spring之假如让你来写IOC容器——加载资源篇 第三章 Spring之假如让你来写IOC容器——解析配置文件篇 第四章 Spring之假如让你来写IOC容器——XML配置文件篇 第五章 Spring之假如让你来写…...
Linux配置MySQL自动备份
Linux配置MySQL自动备份 配置MySQL的自动备份首先要编辑一个备份脚本然后配置开启Linux定时任务即可,下面是具体配置 1、配置备份脚本并测试执行 1.1 编写备份脚本 #这里创建脚本名为mysql_backups.sh mkdir ~/mysqlmulu touch ~/mysqlmulu/mysql_backups.sh#!/…...
qt 之 QDockWidget设置不可拖动
在Qt中,可以通过设置QDockWidget的属性来禁止它被拖动。你可以使用QDockWidget::setFeatures方法并传递QDockWidget::DockWidgetMovable作为参数来禁用拖动功能。 以下是一个简单的示例代码,展示了如何设置QDockWidget为不可拖动: #include …...
【Java知识】Java性能测试工具JMeter
一文带你了解什么是JMeter 概述JMeter的主要功能:JMeter的工作原理:JMeter的应用场景:JMeter的组件介绍: 实践说明JMeter实践基本步骤:JMeter实践关键点: JMeter支持哪些参数化技术?常见插件及其…...
终极指南:如何免费使用Umi-OCR实现高效离线文字识别
终极指南:如何免费使用Umi-OCR实现高效离线文字识别 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置多国语言库…...
AD覆铜时引脚‘粘’在一起了?别慌,三步排查法帮你搞定Modified Polygon和覆铜粘连
AD覆铜引脚粘连问题排查指南:从现象到解决方案的完整路径 在PCB设计过程中,覆铜操作看似简单却暗藏玄机。许多Altium Designer用户都曾遭遇过这样的场景:当你信心满满地完成布线,准备进行最后的覆铜操作时,突然发现不同…...
数据中台下半场比的是治理:六家主流厂商四维度横向测评
一、数据治理:决定数据中台价值兑现的关键变量2026年,一个行业的共识正在变得清晰:数据中台的上限由计算架构决定,但下限由数据治理决定。过去数年,大量企业投入资源搭建了数据中台的基础设施——数据湖、数仓、调度引…...
ClawSuite:模块化网络安全工具集在渗透测试中的实战应用
1. 项目概述:ClawSuite,一个被低估的网络安全工具集如果你在网络安全领域摸爬滚打了一段时间,尤其是在渗透测试或者红队评估的圈子里,你大概率听说过或者用过像 Metasploit、Nmap、Burp Suite 这些耳熟能详的“瑞士军刀”。但今天…...
全国跨省搬家专业靠谱无套路排行 跨省搬家公司选哪个物流平台便宜省心?哪个搬家公司专业安全保障,没有半路加价?
用户最担心的“半路加价”问题,几乎所有“搬家公司/搬家平台”每天都发生各样“半路加价”问题。本文根据各大社交平台用户避雷贴,统计出搬家公司/搬家平台专业靠谱无套路程度前5名,方便广大需要跨省搬家的用户,接近跨省搬家公司选…...
OpenClaw到Hermes一键迁移:自动化配置转移与智能体升级实践
1. 项目概述:从 OpenClaw 到 Hermes 的平滑迁移方案如果你正在运行一个名为 OpenClaw 的智能体项目,并且最近听说了它的“继任者”或一个更强大的替代品 Hermes,那么你很可能正面临一个经典的工程难题:如何将现有的、已经配置好的…...
制造业财务场景AI自动化方案,主流厂商横向对比 —— 2026企业级智能体选型全景盘点
进入2026年,全球制造业正处于从“自动化”向“智能共生”跨越的关键节点。 财务部门作为企业的数据中枢,其AI自动化方案已不再局限于早期的OCR识别或简单的流程脚本。 随着大模型(LLM)与智能体(Agent)技术的…...
arXiv论文智能检索革命(Perplexity深度集成实战白皮书)
更多请点击: https://intelliparadigm.com 第一章:arXiv论文智能检索革命(Perplexity深度集成实战白皮书) 传统 arXiv 检索依赖关键词匹配与手动筛选,面对日均超 2000 篇新增论文,科研人员常陷入信息过载困…...
AgentLimb:基于肌肉记忆的AI浏览器自动化,降低85% Token消耗
1. 项目概述:当AI学会“肌肉记忆”,浏览器自动化迎来新范式如果你和我一样,每天都在和AI助手打交道,让它们帮你写代码、分析数据,甚至尝试控制浏览器完成一些重复性任务,那你一定遇到过这个痛点:…...
3步精通MOOTDX:量化投资数据接口实战指南
3步精通MOOTDX:量化投资数据接口实战指南 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx MOOTDX是一个专为量化投资和数据分析设计的Python库,它提供了高效、便捷的通达信数…...
