常见前端面试之VUE面试题汇总七

  1. 对 vue 设计原则的理解

1.渐进式 JavaScript 框架:与其它大型框架不同的是,Vue 被设计 为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上 手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工 具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应 用提供驱动。

2.易用性:vue 提供数据响应式、声明式模板语法和基于配置的组件 系统等核心特性。这些使我们只需要关注应用的核心业务即可,只要 会写 js、html 和 css 就能轻松编写 vue 应用。

3.灵活性:渐进式框架的最大优点就是灵活性,如果应用足够小,我 们可能仅需要 vue 核心特性即可完成功能;随着应用规模不断扩大,我们才可能逐渐引入路由、状态管理、vue-cli 等库和工具,不管是 应用体积还是学习难度都是一个逐渐增加的平和曲线。

4.高效性:超快的虚拟 DOM 和 diff算法使我们的应用拥有最佳的性能 表现。追求高效的过程还在继续,vue3 中引入 Proxy 对数据响应式 改进以及编译器中对于静态内容编译的改进都会让 vue 更加高效。

  1. 说一下 Vue 的生命周期

Vue 实例有⼀个完整的⽣命周期,也就是从开始创建、初始化数据、编译模版、挂载 Dom -> 渲染、更新 -> 渲染、卸载 等⼀系列过程,称这是 Vue 的⽣命周期。

1.beforeCreate(创建前):数据观测和初始化事件还未开始,此时 data 的响应式追踪、event/watcher 都还没有被设置,也就是说不 能访问到 data、computed、watch、methods 上的方法和数据。

2.created(创建后) :实例创建完成,实例上配置的 options 包 括 data、computed、watch、methods 等都配置完成,但是此时渲染 得节点还未挂载到 DOM,所以不能访问到 $el 属性。

3.beforeMount(挂载前):在挂载开始之前被调用,相关的 render 函数首次被调用。实例已完成以下的配置:编译模板,把 data 里面 的数据和模板生成 html。此时还没有挂载 html 到页面上。

4.mounted(挂载后):在 el 被新创建的 vm.$el 替换,并挂载到实 例上去之后调用。实例已完成以下的配置:用上面编译好的 html 内 容替换 el 属性指向的 DOM 对象。完成模板中的 html 渲染到 html 页 面中。此过程中进行 ajax 交互。

5.beforeUpdate(更新前):响应式数据更新时调用,此时虽然响应 式数据更新了,但是对应的真实 DOM 还没有被渲染。

6.updated(更新后) :在由于数据更改导致的虚拟 DOM 重新渲染和 打补丁之后调用。此时 DOM 已经根据响应式数据的变化更新了。调 用时,组件 DOM 已经更新,所以可以执行依赖于 DOM 的操作。然而 在大多数情况下,应该避免在此期间更改状态,因为这可能会导致更 新无限循环。该钩子在服务器端渲染期间不被调用。

7.beforeDestroy(销毁前):实例销毁之前调用。这一步,实例仍 然完全可用,this 仍能获取到实例。

8.destroyed(销毁后):实例销毁后调用,调用后,Vue 实例指示 的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例 也会被销毁。该钩子在服务端渲染期间不被调用。

另外还有 keep-alive 独有的生命周期,分别为 activated 和

deactivated。用 keep-alive 包裹的组件在切换时不会进行销毁,而 是缓存到内存中并执行 deactivated 钩子函数,命中缓存渲染后会执 行 activated 钩子函数。

相关推荐
@大迁世界4 分钟前
43.HTML 事件处理和 React 事件处理有什么区别?
前端·javascript·react.js·html·ecmascript
CloneCello4 分钟前
AI时代程序员认知调整指南
前端
代钦塔拉31 分钟前
Qt4 vs Qt5 带参数信号槽的连接方式详解
开发语言·数据库·qt
ZC跨境爬虫38 分钟前
跟着 MDN 学 HTML day_38:(DocumentFragment 文档片段接口详解)
前端·javascript·ui·html·音视频
@大迁世界2 小时前
41.ShadCN 是什么?它如何和 Tailwind CSS 集成,从而更容易构建可访问且可自定义的 React 组件?
前端·javascript·css·react.js·前端框架
千叶风行2 小时前
Text-to-SQL 技术设计与注意事项
前端·人工智能·后端
软件开发技术深度爱好者2 小时前
HTML5+JavaScript读取DOCX 文档完整内容
前端·html5
InfinteJustice2 小时前
踩坑分享C 语言文件操作全攻略:从基础读写到随机访问与缓冲区原理
c语言·开发语言·microsoft
码云数智-大飞2 小时前
滥用Lombok的@EqualsAndHashCode导致线上事故复盘
开发语言
yong99902 小时前
C# 实时查看硬件使用率(CPU 内存 硬盘 网络)
开发语言·网络·c#