面试前端随笔20240510

news2024/9/23 9:30:41

最近公司招聘前端开发人员有幸参与帮听,总结了三个有关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.coloradmin.cn/o/1679549.html

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

相关文章

脉冲水路清洗机,全自动脉冲技术清除管道堵塞

邦注脉冲水路清洗机是一种高效的清洗设备,它利用全自动脉冲技术来清除管道内的堵塞和污垢。以下是对该设备的一些详细描述: 全自动脉冲技术:脉冲水路清洗机采用了全自动脉冲技术,这是一种先进的清洗方法。该技术通过产生高强度的…

3D Web轻量化引擎HOOPS Communicator如何处理DWG文件中的图纸?

在当今工程设计和建筑领域,数字化技术已经成为不可或缺的一部分。HOOPS Communicator作为一种强大的三维数据可视化工具,被广泛应用于处理各种CAD文件,其中包括AutoCAD的DWG格式。在这篇文章中,我们将探讨HOOPS Communicator是如何…

湖南大学OS-2018期末考试(不含解析)

前言 不知道哪里翻出来的一张,看着确实像期末考卷,暂且放一下。或许做过,或许没做过。 总之答案不记得了。做完可以评论区发一下或者找我发出来。 共6道大题。 一、(30%) 1. (6%) 进程间通信的两种方法分别是什么&…

GIN框架_请求参数

请求参数 1. Get请求参数 使用Get请求传参时,类似于这样 http://localhost:8080/user/save?id11&namezhangsan。 如何获取呢? 1.1 普通参数 request url: http://localhost:8080/user/save?id11&namezhangsan r.GET("/user/save&qu…

【Web】CTFSHOW 月饼杯 题解(全)

目录 web1_此夜圆 web2_故人心 web3_莫负婵娟 web1_此夜圆 拿到源码&#xff0c;一眼字符串逃逸 本地测一测&#xff0c;成功弹出计算器 <?phpclass a {public $uname;public $password;public function __wakeup(){system(calc);} }function filter($string){retur…

网络安全大神是怎么炼成的

首先&#xff0c;兴趣是最好的老师&#xff0c;如果你不感兴趣&#xff0c;建议换一个有兴趣的专业&#xff0c;其次&#xff0c;再来说说你是对信息安全感兴趣&#xff0c;想往安全方面走的&#xff0c;我这边给你一些学习建议。 首先&#xff0c;安全这方面的前景是很好的&a…

代理IP与网络隐私

随着科技的发展&#xff0c;越来越多的人开始享受网络的便利&#xff0c;人们逐步在社交媒体上分享自己的生活。这些公开信息是可以被所有人浏览观看的&#xff0c;但是也会存在部分隐私信息我们并不想要被人知晓&#xff0c;这就牵扯到网络隐私保护问题。 代理IP对于网络隐私保…

软考一年只能考一次吗?24软考各科目考试时间一览表

软考考试次数&#xff1a; 软考高级【系统分析师】及【系统架构设计师】是一年考两次的。 此外&#xff0c;软考中级【软件设计师】和【网络工程师】也是一年考两次的。 其他科目一年都只开考一次&#xff0c;或者上半年开考&#xff0c;或者下半年开考&#xff0c;具体考试…

如何通过radsystem源代码启动项目

大家有没有想过这样一个问题&#xff0c;如果别人没有下载radsystems&#xff0c;别人该如何打开我们的项目呢&#xff0c;那么今天我来介绍一下&#xff0c;如何启动radsystem源代码。 一般来说我们都是需要打开radsystems的publish部署项目 但是我们可以通过它部署后的源代码…

微信视频号开店需要多少钱?2024年最新入驻条件,商家必看!

哈喽~我是电商月月 视频号小店逐渐走入大众视野&#xff0c;观众多&#xff0c;但里面的商家却很少&#xff0c;很多想创业做电商的朋友&#xff0c;就把目光锁定到了视频号平台&#xff0c;那现在视频号小店的入驻费用肯定是新手&#xff0c;最关心的事情了&#xff01; 今天…

【R语言】ggplot中点的样式shape参数汇总

ggplot中点的样式展示&#xff1a; library(ggplot2)# 创建数据框 a<- data.frame(x 0:25, y 0:25) # 创建散点图 ggplot(a, aes(x x, y y, shape as.factor(y))) geom_point(size 4) scale_shape_manual(values 0:25) labs(shape "形状") theme(legend.…

903. 昂贵的聘礼[dijsktra堆优化版]

题目描述 年轻的探险家来到了一个印第安部落里。 在那里他和酋长的女儿相爱了&#xff0c;于是便向酋长去求亲。 酋长要他用 10000 个金币作为聘礼才答应把女儿嫁给他。 探险家拿不出这么多金币&#xff0c;便请求酋长降低要求。 酋长说&#xff1a;”嗯&#xff0c;如果你能够…

网络审计:为什么定期检查您的网络很重要

在数字化时代&#xff0c;网络安全成为组织和个人必须面对的重要挑战。网络审计是一种关键的安全措施&#xff0c;通过定期检查和评估网络系统的安全性&#xff0c;帮助发现潜在的安全漏洞和弱点&#xff0c;从而防止数据泄露和其他安全威胁。本文将介绍网络审计的重要性&#…

寄大件家具用什么物流便宜,寄沙发大件物流便宜

在现代生活中&#xff0c;搬家或重新布置家居时&#xff0c;沙发作为体积较大、价值较高的家具&#xff0c;选择一个经济实惠的物流服务至关重要。 1、对于近距离的运输&#xff0c;同城寄沙发可以找个车直接拉过去比较划算&#xff0c;省外的可以试试像我这样邮寄&#xff1b;…

docker镜像容器常用命令

常用基础命令1、docker info #查看docker版本等信息 2、docker search jenkins #搜索jenkins镜像 3、docker history nginx #查看镜像中各层内容及大小,每层对应的dockerfile中的一条指令。 4、docker network ls #显示当前主机上的所有网络 5、docker logs nginx …

kubernetes二进制多master部署

文章目录 一、master02 节点部署&#xff08;在上期博客部署完成的情况下&#xff09;1、准备master02节点需要的文件2、修改配置文件kube-apiserver中的IP3、启动各服务并设置开机自启4、查看node节点状态 二、负载均衡部署1、配置load balancer集群双机热备负载均衡1.1 准备n…

JAVA实验项目(三):基于Java 设计的学生成绩管理系统

Tips&#xff1a;"分享是快乐的源泉&#x1f4a7;&#xff0c;在我的博客里&#xff0c;不仅有知识的海洋&#x1f30a;&#xff0c;还有满满的正能量加持&#x1f4aa;&#xff0c;快来和我一起分享这份快乐吧&#x1f60a;&#xff01; 喜欢我的博客的话&#xff0c;记…

##22 深入理解Transformer模型

文章目录 前言1. Transformer模型概述1.1 关键特性 2. Transformer 架构详解2.1 编码器和解码器结构2.1.1 多头自注意力机制2.1.2 前馈神经网络 2.2 自注意力2.3 位置编码 3. 在PyTorch中实现Transformer3.1 准备环境3.2 构建模型3.3 训练模型 4. 总结与展望 前言 在当今深度学…

Shell之常用命令

目录 1.排序工具--sort命令 1.1 快读查找一个目录中最大文件 2.去重工具--uniq命令 2.1 分析判断远程登录错误次数&#xff0c;禁止该用户远程登录 3.修改工具--tr命令 4.列截取工具--cut命令 5.分割文件工具--split命令 6.合并文件列--paste命令 7.扫描工具--eval命令…

pikachu靶场通关之暴力破解token防爆破

这里写pikachu靶场token防爆破的第二种解法 用python脚本跑&#xff0c;下面是代码 import requests from bs4 import BeautifulSoup# url填自己的url url http://localhost:8086/pikachu-master/vul/burteforce/bf_token.php # 取出账号字典里的值&#xff0c;1.txt就是账号…