yyzzabc123
码龄2年
关注
提问 私信
  • 博客:26,604
    社区:1
    26,605
    总访问量
  • 91
    原创
  • 1,516,509
    排名
  • 11
    粉丝
  • 0
    铁粉

个人简介:永远没有bug

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:浙江省
  • 加入CSDN时间: 2022-09-07
博客简介:

yyzzabc123的博客

查看详细资料
个人成就
  • 获得7次点赞
  • 内容获得2次评论
  • 获得39次收藏
创作历程
  • 17篇
    2023年
  • 74篇
    2022年
成就勋章
兴趣领域 设置
  • 学习和成长
    面试
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

校招前端vue面试题(边面边更)

Vue模版编译原理知道吗,能简单说一下吗?简单说,Vue的编译过程就是将template转化为render函数的过程。会经历以下阶段:生成AST树优化codegen首先解析模版,生成AST语法树(一种用JavaScript对象的形式来描述整个模板)。 使用大量的正则表达式对模板进行解析,遇到标签、文本的时候都会执行对应的钩子进行相关处理。Vue的数据是响应式的,但其实模板中并不是所有的数据都是响应式的。有一些数据首次渲染后就不会再变化,对应的DOM也不会变化。那么优化过程就是深度遍历AST树
原创
发布博客 2023.03.15 ·
473 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

校招前端vue面试题集锦

指令本质上是装饰器,是 vue 对 HTML 元素的扩展,给 HTML 元素增加自定义功能。vue 编译 DOM 时,会找到指令对象,执行指令的相关方法。自定义指令有五个生命周期(也叫钩子函数),分别是 bind、inserted、update、componentUpdated、unbind1. bind:只调用一次,指令第一次绑定到元素时调用。在这里可以进行一次性的初始化设置。2. inserted:被绑定元素插入父节点时调用 (仅保证父节点存在,但不一定已被插入文档中)。
原创
发布博客 2023.03.15 ·
535 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

vue源码分析-挂载流程和模板编译

前面几节我们从new Vue创建实例开始,介绍了创建实例时执行初始化流程中的重要两步,配置选项的资源合并,以及响应式系统的核心思想,数据代理。在合并章节,我们对Vue丰富的选项合并策略有了基本的认知,在数据代理章节我们又对代理拦截的意义和使用场景有了深入的认识。按照Vue源码的设计思路,初始化过程还会进行很多操作,例如组件之间创建关联,初始化事件中心,初始化数据并建立响应式系统等,并最终将模板和数据渲染成为dom节点。如果直接按流程的先后顺序分析每个步骤的实现细节,会有很多概念很难理解。
原创
发布博客 2023.03.15 ·
392 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

前端二面vue面试题总结

Mixin 使我们能够为 Vue 组件编写可插拔和可重用的功能。如果希望在多个组件之间重用一组组件选项,例如生命周期 hook、 方法等,则可以将其编写为 mixin,并在组件中简单的引用它。然后将 mixin 的内容合并到组件中。如果你要在 mixin 中定义生命周期 hook,那么它在执行时将优化于组件自已的 hook。
原创
发布博客 2023.03.01 ·
693 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

vue源码分析-基础的数据代理检测

简单回顾一下这个系列的前两节,前两节花了大量的篇幅介绍了Vue的选项合并,选项合并是Vue实例初始化的开始,Vue为开发者提供了丰富的选项配置,而每个选项都严格规定了合并的策略。然而这只是初始化中的第一步,这一节我们将对另一个重点的概念深入的分析,他就是,我们知道Vue大量利用了代理的思想,而除了响应式系统外,还有哪些场景也需要进行数据代理呢?这是我们这节分析的重点。
原创
发布博客 2023.03.01 ·
366 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

百度前端二面vue面试题指南

JavaScript中的对象是引用类型的数据,当多个实例引用同一个对象时,只要一个实例对这个对象进行操作,其他实例中的数据也会发生变化。而在Vue中,更多的是想要复用组件,那就需要每个组件都有自己的数据,这样组件之间才不会相互干扰。所以组件的数据不能写成对象的形式,而是要写成函数的形式。数据以函数返回值的形式定义,这样当每次复用组件的时候,就会返回一个新的data,也就是说每个组件都有自己的私有数据空间,它们各自维护自己的数据,不会干扰其他组件的正常运行。
原创
发布博客 2023.03.01 ·
394 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

vue源码分析-响应式系统工作原理

就是存放当前属性的地方,当我们数据发生变化的时候就不会被监听到,我们就要通过。操作,且observe函数深度遍历,所以把所有的属性都添加到了。已经有很深刻的理解了吧,那么我们还有一个话题,我们是如何进行。第一次实例化的时候,都会作为订阅者订阅其相应的。初始化做的一些操作,那么我们这一章来讲一个。是需要被观察的数据对象,在构造函数中,会给。上面了,也就是说,咱们对数据的读写就会触发。属性,如果存在,则表明该对象已经处于。,那么我们直接看源码,我们看到的。这些方法,可想而知,我们依赖了。
原创
发布博客 2023.03.01 ·
275 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

美团前端常见vue面试题(必备)

Mixin 使我们能够为 Vue 组件编写可插拔和可重用的功能。如果希望在多个组件之间重用一组组件选项,例如生命周期 hook、 方法等,则可以将其编写为 mixin,并在组件中简单的引用它。然后将 mixin 的内容合并到组件中。如果你要在 mixin 中定义生命周期 hook,那么它在执行时将优化于组件自已的 hook。插槽创建组件虚拟节点时,会将组件儿子的虚拟节点保存起来。当初始化组件时,通过插槽属性将儿子进行分类渲染组件时会拿对应的slot属性的节点进行替换操作。(插槽的作用域为父组件)
原创
发布博客 2023.02.28 ·
3253 阅读 ·
1 点赞 ·
0 评论 ·
8 收藏

字节前端一面常见vue面试题(必备)

JavaScript中的对象是引用类型的数据,当多个实例引用同一个对象时,只要一个实例对这个对象进行操作,其他实例中的数据也会发生变化。而在Vue中,更多的是想要复用组件,那就需要每个组件都有自己的数据,这样组件之间才不会相互干扰。所以组件的数据不能写成对象的形式,而是要写成函数的形式。数据以函数返回值的形式定义,这样当每次复用组件的时候,就会返回一个新的data,也就是说每个组件都有自己的私有数据空间,它们各自维护自己的数据,不会干扰其他组件的正常运行。回答范例Vue有一组默认指令,比如。
原创
发布博客 2023.02.28 ·
444 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

vue源码分析-响应式系统(三)

上一节,我们深入分析了以为数据创建响应式系统的过程,并对其中依赖收集和派发更新的过程进行了详细的分析。然而在使用和分析过程中依然存在或多或少的问题,这一节我们将针对这些问题展开分析,最后我们也会分析一下watch的响应式过程。这篇文章将作为响应式系统分析的完结篇。
原创
发布博客 2023.02.28 ·
99 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

vue源码分析-响应式系统(二)

参考。
原创
发布博客 2023.02.28 ·
245 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

前端vue面试题(持续更新中)

Vue是pull+push的方式侦测变化的,在一开始就知道那个组件发生了变化,因此在push的阶段并不需要手动控制diff,而组件内部采用的diff方式实际上是可以引入类似于shouldComponentUpdate相关生命周期的,但是通常合理大小的组件不会有过量的diff,手动优化的价值有限,因此目前Vue并没有考虑引入shouldComponentUpdate这种手动优化的生命周期.更精确的来说,对于数组而言,大部分操作都是拦截不到的,只是 Vue 内部通过重写函数的方式解决了这个问题。
原创
发布博客 2023.02.27 ·
492 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

vue源码分析-动态组件

Vue初始化阶段会在构造器的components属性添加三个组件对象,每个组件对象的写法和我们在自定义组件过程的写法一致,有render函数,有生命周期,也会定义各种数据。// keep-alive组件选项} } // transition 组件选项} } // transition-group 组件选项} ,methods: {// Vue构造器的选项配置,compoents选项合并 extend(Vue.options.components , builtInComponents);
原创
发布博客 2023.02.27 ·
584 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

2023前端vue面试题汇总

但是如果从别的组件跳转到 B 组件的时候,实际上是希望 B 组件重新渲染的,也就是不要从 Storage 中读取信息。除此之外,在Vue中,还可以是用keep-alive来缓存页面,当组件在keep-alive内被切换时组件的。对于最终的结果,两种方式是相同的。旧前与新后(头与尾比,此种发生了,涉及移动节点,那么新前指向的节点,移动到旧后之后)旧后与新前(尾与头比,此种发生了,涉及移动节点,那么新前指向的节点,移动到旧前之前)因为异步路由的存在,我们使用异步组件的次数比较少,因此还是有必要两者的不同。
原创
发布博客 2023.02.27 ·
344 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

vue源码分析-响应式系统(一)

从这一小节开始,正式进入Vue源码的核心,也是难点之一,响应式系统的构建。这一节将作为分析响应式构建过程源码的入门,主要分为两大块,第一块是针对响应式数据初始化过程的分析,另一块则是在保留源码设计理念的前提下,尝试手动构建一个基础的响应式系统。有了这两个基础内容的铺垫,下一篇进行源码具体细节的分析会更加得心应手。
原创
发布博客 2023.02.27 ·
359 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

京东前端二面必会vue面试题(持续更新中)

MVVM 与 MVC 最大的区别就是:它实现了 View 和 Model 的自动同步,也就是当 Model 的属性改变时,我们不用再自己手动操作 Dom 元素,来改变 View 的显示,而是改变属性后该属性对应 View 层显示会自动改变(对应Vue数据驱动的思想)Vue的数据是响应式的,但其实模板中并不是所有的数据都是响应式的。的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调。但是 Vue 提供了。
原创
发布博客 2023.02.24 ·
205 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

vue源码分析-从new Vue开始

的时候就会执行这个方法,并且我们传过去的options可以通过vm.$options访问到,那么。在Vue的原型上挂了一个_init方法,也就是说,我们执行。那我们再去一探究竟,可想而知里面必定有一个Vue函数类。等,这几个方法分别传入了Vue来初始化一些功能。内部原理又是啥呢,而且我们看到他接收到两个部分。那么关于这三个函数是干嘛的?函数执行完前两步之后需要执行的几个函数分别为。,可以看出来这不就是实现了一个继承嘛。那么我们写的一些组件和特性全部放在。中可以发现初始化了一些功能,例如。
原创
发布博客 2023.02.24 ·
178 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

vue源码分析-diff算法核心原理

这一节,依然是,上几节内容介绍了是Vue在渲染机制上做的优化,而渲染的核心在于数据变化时,如何高效的更新节点,这就是diff算法。由于源码中关于diff算法部分流程复杂,直接剖析每个流程不易于理解,所以这一节我们换一个思路,参考源码来手动实现一个简易版的diff算法。之前讲到Vue在渲染机制的优化上,引入了的概念,利用描述一个真实的DOM,本质上是在JS和真实DOM之间架起了一层缓冲层。当我们通过大量的JS运算,并将最终结果反应到浏览器进行渲染时,可以将多个改动合并成一个批量的操作,从而减少dom。
原创
发布博客 2022.12.12 ·
145 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

vue源码分析-v-model的本质

双向数据绑定这个概念或者大家并不陌生,视图影响数据,数据同样影响视图,两者间有双向依赖的关系。在响应式系统构建的上,中,下篇我已经对数据影响视图的原理详细阐述清楚了。而如何完成视图影响数据这一关联?这就是本节讨论的重点:指令v-model。由于v-model和前面介绍的插槽,事件一致,都属于vue提供的指令,所以我们对v-model的分析方式和以往大同小异。分析会围绕模板的编译,render函数的生成,到最后真实节点的挂载顺序执行。最终我们依然会得到一个结论,。
原创
发布博客 2022.12.12 ·
317 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

vue源码分析-事件机制

点击传递信息给父组件
原创
发布博客 2022.12.12 ·
103 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多