面试前端随笔20240510

最近公司招聘前端开发人员有幸参与帮听,总结了三个有关vue的面试问题和答案,现在分享一下。

1.Vue2数据监听无法监听数组为啥?有啥解决方案?vue3中是如何处理这个问题?

vue2的官方说明了defineProperty的一些限制:
数组在两种情况下是无法监听的:
1.利用索引直接设置一个数组项时,例如:arr[indexOfItem] = newValue;
2.修改数组的长度时,例如:arr.length = newLength;

对象一下情况无法监听
无法监听新增属性和删除属性

Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象。

Vue的数据响应式原理主要是通过ES5的Object.defineProperty方法来实现的。

Vue在初始化数据对象时,会遍历数据对象的所有属性,并使用Object.defineProperty将这些属性转为访问器属性,从而在对这些属性进行读取或者赋值的时候,能够触发getter和setter函数,然后Vue就能够更新视图。

Vue2数据监听无法监听数组,本质原因是Object.defineProperty 存储描述中的getter和setter触发都是通过索引访问和设置。申明的对象属性值也就是索引值是有限和确定的,但是数组是一种特殊的对象它的索引值是不固定,在getter和setter 无法劫持。
Vue2内部通过重写数组的原型方法来监听数组的变动。(push、pop、shift、unshift、splice、sort、reverse)会触发原有的逻辑之外,还会触发视图更新。
vue3中使用的proxyES6代理

2.Vuex存储的状态存放到哪里,什么情况下会丢失?是否有大小限制?如何解决上述问题?

Vuex 的状态存储在内存中。

以下情况下会丢失:
1.页面刷新:当浏览器地址栏中的URL发生变化,导致页面全部重新加载时,Vuex中的状态会丢失。
2.使用Vue Router的单页面应用(SPA)导航时:如果你使用的是Vue Router的默认导航策略,即使是同一个路由的不同视图间的切换,也可能会导致组件重新创建,从而导致Vuex状态的丢失。
3.错误的Vuex状态管理:如果你在操作Vuex状态时出现了错误,比如直接修改了state的属性而不是通过mutations,这样可能会导致状态的丢失。

Vuex存储的数据理论上是没有大小限制的,但是过大,可能会导致性能问题,甚至可能引起内存溢出错误。

解决方法有如下:
1.存储到浏览器本地存储中(sessionStorage、localStorage、cookie)。
2.使用第三方插件

3.开放问题Vue页面渲染是如何进行的?

vue内部编译顺序:

第一步,把模板编译为render函数
第二步,实例进行挂载, 根据根节点render函数的调用,递归的生成虚拟dom。
第三步,对比虚拟dom,渲染到真实dom。

生成虚拟DOM包含下过程

  1. 第一步,用 JS 对象模拟 DOM 树,得到一棵虚拟 DOM 树。
  2. 第二步,当页面数据变更时,生成新的虚拟 DOM 树,比较新旧两棵虚拟 DOM 树的差异。
  3. 第三步,把差异应用到真正的 DOM 树上。

第四步,将虚拟DOM 生成真正的DOM插入到页面中,进行页面渲染。

vue项目文件加载顺序

  1. 加载index.html文件
  2. 运行main.js文件
  3. main.js挂载了核心代码以及该文件下其他模块。

生命周期顺序

在这里插入图片描述

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

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

相关文章

Oracle SQL Developer 脚本输出中文显示乱码

问题描述 在测试Oracle Select AI(自然语言查询数据库)时,发现Run Statement中文显示正常: 而Run Script中文显示乱码: 问题解决 进入菜单Tools>Preferences...>Environment, 修改SQL Developer…

JavaScript-JSON对象

JSON格式 JSON(JavaScript Object Notation, JS对象简谱)是一种轻量级的数据交换格式。它基于ECMAScript(European Computer Manufacturers Association, 欧洲计算机协会的一个子集,采用完全独立于编程语言的文本格式来存储和表示…

spring基于XML的声明式事务控制

在Spring框架中,基于XML的声明式事务控制是一种通过配置来管理事务的方式,而无需在代码中显式编写事务逻辑。以下是如何在Spring中使用XML来配置声明式事务控制的步骤: 添加必要的依赖 确保你的项目中包含了Spring框架的核心包和Spring事务…

赶紧收藏!2024 年最常见 100道 Java 基础面试题(四十八)

上一篇地址:赶紧收藏!2024 年最常见 100道 Java 基础面试题(四十七)-CSDN博客 九十五、spring支持几种bean的作用域? Spring框架支持多种Bean的作用域,每种作用域都定义了Spring容器如何管理和创建Bean的…

论文:论面向服务的架构设计

题目 在面向服务的架构(Service-Oriented Architecture,SOA)中,服务的概念有了延伸,泛指系 统对外提供的功能集。例如,在一个大型企业内部,可能存在进销存、人事档案和财务等多个系统&#xff…

Java程序运行流程

Java运行流程 Java源代码 — 编译工具 —> Java字节码文件 — 运行工具 —> Java程序运行 Java程序的基本单位 类 Java程序执行入口 main方法

盘点那些年我们一起玩过的网络安全工具

一、反恶意代码软件 1.Malwarebytes 这是一个检测和删除恶意的软件,包括蠕虫,木马,后门,流氓,拨号器,间谍软件等等。快如闪电的扫描速度,具有隔离功能,并让您方便的恢复。包含额外…

项目中使用Elasticsearch的API相关介绍

项目中使用Elasticsearch的API相关介绍 0、域映射类型 text:会分词,不支持聚合对当前搜索关键词,先自身分词,分成多个词,然后去一个一个的词去利用倒排索引去查询es索引库一般应用在搜索关键字匹配的字段的类型。 商…

上海市计算机学会竞赛平台2020年8月月赛丙组促销骰子

题目描述 小爱的商店正在促销。顾客在付款的时候,有机会掷一次骰子,如果掷出 66,可以获得优惠,并且可以继续掷骰子,直到出现不是 66 的情况,或掷三次为止。获奖规则如下: 如果没有 66&#xf…

【C#】某AGV调度系统源码笔记(十二)

AGV调度服务的核心类库 小车事件参数 两个公共属性:车辆信息、事件描述。一个构造函数传入两个参数赋值给属性。 核心数据类 初始化及存储调度系统中所有的档案信息。 多个静态公共属性存储不同类型的系统数据:是否全局服务、数据库操作对象、系统参数集…

Beego 使用教程 6:Web 输入处理

beego 是一个用于Go编程语言的开源、高性能的 web 框架 beego 被用于在Go语言中企业应用程序的快速开发,包括RESTful API、web应用程序和后端服务。它的灵感来源于Tornado, Sinatra 和 Flask beego 官网:http://beego.gocn.vip/ 上面的 bee…

P2234 [HNOI2002] 营业额统计

题目描述 Tiger 最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况。 Tiger 拿出了公司的账本,账本上记录了公司成立以来每天的营业额。分析营业情况是一项相当复杂的工作。由于节假日,大…

对话机器人技术解说

一、RAG介绍 如何不通过微调模型来提高LLM性能,检索增强生成(RAG)是未来的发展方向。 Embedding:将文档的句子或单词块转换为数字向量。就向量之间的距离而言,彼此相似的句子应该很近,而不同的句子应该离…

react-native 渲染引擎经历了什么

React Native 的渲染引擎经历了多个迭代,不断优化和改进。以下是一些较为显著的迭代: 原生组件封装:最初的 React Native 版本是通过 JavaScript 渲染 UI,并通过桥接层将 UI 转化为原生组件。随着发展,React Native 开…

Spring的监听器使用(实用,直接拿去修改可用)

一,前言 这里我们以ApplicationListener为例,简单说明一下监听器如何使用。 本人基本只输出实用,即用的代码,希望能帮助到各位,如果想研究底层逻辑,大家可自行根据代码去类源码查看。 监听器的使用主要分…

美易官方:收盘美股收涨纳指创历史新高,市场关注CPI通胀数据

​收盘之际,美股市场呈现出一派欣欣向荣的景象,各大指数纷纷收红,尤其是纳斯达克指数更是创下了历史新高,市场气氛热烈而积极。这一日的交易过程中,投资者们信心满满,积极寻觅着能够带来丰厚回报的投资机会…

上层建筑(理解)

上层建筑(Superstructure)是指建立在一定经济基础上的社会意识形态以及与之相适应的政治法律制度和设施等的总和。它包括阶级关系(基础关系)、维护这种关系的国家机器、社会意识形态以及相应政治法律制度、组织和设施等。 上层建筑与经济基础对立统一。建…

用go语言写一个代码,加班就自动给老婆发信息,下班自动提醒的代码

文章推荐 1 作为程序员,开发用过最好用的AI工具有哪些? 2 Github Copilot正版的激活成功,终于可以chat了 3 idea,pycharm等的ai assistant已成功激活 4 新手如何拿捏 Github Copilot AI助手,帮助你提高写代码效率 5 Jetbrains的a…

相机模型,坐标变换,畸变

小孔成像模型 墨子就记录了小孔成像是倒立的。这从几何光学的角度是很好理解的:光沿直线传播,上方和下方的光线交叉,导致在成像平面位置互换。 小孔的大小有什么影响? 小孔越大,进光量变大了,但是成像平…

第二步 完善MBR

文章目录 前言一、什么是MBR?二、我们需要什么样的MBR?三、设计我们的MBR!1、打印“1 MBR”2、加载次引导程序——loader 四、实践检验! 查看系列文章点这里: 操作系统真象还原 前言 在上一篇文章 第一步 从启动BIOS开…