分享好友 最新动态首页 最新动态分类 切换频道
前端必会vue面试题(必备)_2023-03-15
2024-12-26 09:51

Vuex有哪几种属性?

有五种,分别是 State、 Getter、Mutation 、Action、 Module

Vue.js的template编译

简而言之,就是先转化成AST树,再得到的render函数返回VNode(Vue的虚拟DOM节点),详细步骤如下:

首先,通过compile编译器把template编译成AST语法树(abstract syntax tree 即 源代码的抽象语法结构的树状表现形式),compile是createCompiler的返回值,createCompiler是用以创建编译器的。另外compile还负责合并option。

然后,AST会经过generate(将AST语法树转化成render funtion字符串的过程)得到render函数,render的返回值是VNode,VNode是Vue的虚拟DOM节点,里面有(标签名、子节点、文本等等)

Vue 中 computed 和 watch 有什么区别?

计算属性 computed

侦听属性 watch

vue初始化页面闪动问题

使用vue开发时,在vue初始化之前,由于div是不归vue管的,所以我们写的代码在还没有解析的情况下会容易出现花屏现象,看到类似于{{message}}的字样,虽然一般情况下这个时间很短暂,但是还是有必要让解决这个问题的。

首先:在css里加上以下代码:

如果没有彻底解决问题,则在根元素加上

Vue中的key到底有什么用?

是为Vue中的vnode标记的唯一id,通过这个key,我们的diff操作可以更准确、更快速

diff算法的过程中,先会进行新旧节点的首尾交叉对比,当无法匹配的时候会用新节点的与旧节点进行比对,然后超出差异.

diff程可以概括为:oldCh和newCh各有两个头尾的变量StartIdx和EndIdx,它们的2个变量相互比较,一共有4种比较方式。如果4种比较都没匹配,如果设置了key,就会用key进行比较,在比较的过程中,变量会往中间靠,一旦StartIdx>EndIdx表明oldCh和newCh至少有一个已经遍历完了,就会结束比较,这四种比较方式就是首、尾、旧尾新头、旧头新尾.

依赖收集简版

参考

diff算法

时间复杂度: 个树的完全 算法是一个时间复杂度为 ,vue进行优化转化成 。

理解:

diff算法的优化策略:四种命中查找,四个指针

$nextTick 是什么?

Vue 实现响应式并不是在数据发生后立即更新 DOM,使用 是在下次 DOM 更新循环结束之后立即执行延迟回调。在修改数据之后使用,则可以在回调中获取更新后的 DOM

为什么要有这些模式,目的:职责划分、分层(将层、层进行分类)借鉴后端思想,对于前端而已,就是如何将数据同步到页面上

MVC模式 代表: + +

MVVM模式 映射关系的简化,隐藏了

是缩写,也就是把中的演变成。层代表数据模型,代表UI组件,是和层的桥梁,数据会绑定到层并自动将数据渲染到页面中,视图变化的时候会通知层更新数据。

总结 : 模式简化了界面与业务的依赖,解决了数据频繁更新。 在使用当中,利用双向绑定技术,使得 变化时, 会自动更新,而 变化时, 也会自动变化。

我们以下通过一个 实例来说明 的具体实现

的编译过程就是将 转化为 函数的过程

回答范例

思路

回答范例

可能的追问

在 之后。 会调用 函数进行初始化,也就是这里的 i 过程,它会初始化生命周期、事件、 、 、 、 与 等。其中最重要的是通过 设置 与 函数,用来实现「响应式」以及「依赖收集」

使用将语法解析

源码分析

Vue的优点

diff算法

<details open=""><summary><b>答案</b></summary>

<p>

</p><p><strong>时间复杂度:</strong> 个树的完全<code> diff</code> 算法是一个时间复杂度为<code> O(n*3)</code> ,vue进行优化转化成<code> O(n)</code> 。</p>

<p><strong>理解:</strong></p>

<ul>

<li>

<p>最小量更新,<code> key</code> 很重要。这个可以是这个节点的唯一标识,告诉<code> diff</code> 算法,在更改前后它们是同一个DOM节点</p>

<ul>

<li>扩展<code> v-for</code> 为什么要有<code> key</code> ,没有<code> key</code> 会暴力复用,举例子的话随便说一个比如移动节点或者增加节点(修改DOM),加<code> key</code> 只会移动减少操作DOM。</li>

</ul>

</li>

<li>

<p>只有是同一个虚拟节点才会进行精细化比较,否则就是暴力删除旧的,插入新的。</p>

</li>

<li>

<p>只进行同层比较,不会进行跨层比较。</p>

</li>

</ul>

<p><strong>diff算法的优化策略</strong>:四种命中查找,四个指针</p>

<ol>

<li>

<p>旧前与新前(先比开头,后插入和删除节点的这种情况)</p>

</li>

<li>

<p>旧后与新后(比结尾,前插入或删除的情况)</p>

</li>

<li>

<p>旧前与新后(头与尾比,此种发生了,涉及移动节点,那么新前指向的节点,移动到旧后之后)</p>

</li>

<li>

<p>旧后与新前(尾与头比,此种发生了,涉及移动节点,那么新前指向的节点,移动到旧前之前)</p>

</li>

</ol>

<p></p>

</details>

--- 问完上面这些如果都能很清楚的话,基本O了 ---

以下的这些简单的概念,你肯定也是没有问题的啦

最新文章
高中生雅思7.5分是什么水平
对于很多高中生来说,雅思考试是他们升学的重要里程碑。在雅思考试中获得高分对于他们进入理想大学或者留学的机会至关重要。那么,高中生雅思7.5分是什么等级呢?下面我将从不同方面为大家解答。雅思考试总分为9分,分为听力、阅读、写作和
贵阳夜生活指南:高端商务KTV与夜总会排名
发布时间:2024-12-13 13:51:01贵阳,这座充满活力的城市,夜生活丰富多彩,尤其是高端商务KTV和夜总会,更是商务洽谈和休闲娱乐的理想场所。以下是贵阳夜总会的精选排名,为您的夜生活提供参考。贵阳尊荣会夜总会以其卓越的服务和豪华的环
张店SEO优化公司助力企业品牌在线影响力提升
张店SEO优化公司专注于企业互联网营销,通过专业服务提升品牌在线影响力,助力企业拓展网络市场。随着互联网的飞速发展,越来越多的企业开始重视网络营销,希望通过互联网拓展市场,提升品牌知名度,在这个过程中,SEO(搜索引擎优化)成为
推荐一个web可视化docker管理工具PORTAINER
码头管理器 0.1 DockManager 是一个简单的 web 应用程序,用于管理多个 docker 服务器它是用 NodeJS 编写的,使用 Express。 ###它是如何工作的? DockManager 正在使用 Docker API。 你只需要启用从这个服务器到你的 docker 守护进程的远
成品网站1 1 719:高效便捷的建站解决方案,帮助中小企业快速上线
“成品网站1 1 719”这个关键词,听起来可能有些陌生,但它在网站建设和设计领域的特定背景下具有相当重要的意义。本文将围绕“成品网站1 1 719”展开详细分析,解释它在不同场景下的应用,特别是在企业建站和个人站点搭建中的作用。随着互
证件照换底色app免费的有哪些 免费证件照换底色软件分享
众所周知,在工作中或者是各种考试、以及各个方面都可能会应用到证件照,那么不同领域对证件照的要求也是不一样的,照片的大效或者底色方面。今天就来看一下证件照换底色app免费的有哪些?小编会给大家介绍几款自用的免费软件,大家可在手机
手机cpu天梯图2024年8月最新
对于手机处理器的理解,往往存在一种误区。有些人认为,既然对手机的性能需求不高,且不常玩游戏,那么顶级的处理器就显得不那么必要。然而,事实上,处理器是手机中几乎所有运算工作的核心。 无论是
联想ThinkPad与ThinkBook:笔记本电脑系列之间的区别概览
本文将深入探讨联想的ThinkPad和ThinkBook两个笔记本电脑系列的特点和差异,帮助消费者更好地理解它们各自的优势和适用场景。从设计、性能、定位、功能特点等方面进行分析比较,以便为读者在购买时提供有力的参考依据。一、联想ThinkPad系
实战解析,SEO与SEM案例,揭秘网站流量与率提升之道
本文解析了SEO与SEM实战案例,深入探讨了如何通过优化搜索引擎排名和付费推广提升网站流量与率。案例展示了实际操作技巧,包括关键词研究、内容优化、广告投放等策略,为网站优化提供实用参考。随着互联网的不断发展,SEO(搜索引擎优化)
这里告诉你变现猫互动广告广告投放怎么合作
变现猫怎么推广?有官方广告合作。aautoquickey今年开始商业化,aautoquickerapp的有的广告位。你可以付钱。变现猫推广小程序怎么开通?1.进入aautoquickerapp,实名认证后打开aautoquickless商店;aautoquicker的首页——左上角“3”打开侧
相关文章
推荐文章
发表评论
0评