前端Vue的面试题目

简介: 前端Vue的面试题目

1、谈谈你对Vue的理解


  • Vue是一套用于构建用户界面渐进式的JavaScript框架。
  • 它有三个优点:
  • 1、采用了组件化模式,提高代码的复用率,且让代码更好地维护(封装组件)。
  • 2、声明式编码,让程序员不用直接操作DOM,提高开发效率。
  • 3、使用虚拟DOM+优秀的Diff算法,尽量复用DOM节点。


image.png

3、什么是MVVM模式


  • MVVM分为Model、View、ViewModel
  • Model 代表数据模型,数据和业务逻辑都在Model层中定义;
  • View 代表UI视图,负责数据的展示(html);
  • ViewModel 负责监听 Model 中数据的改变并且控制视图View的更新,处理用户交互操作;


MVVM的思想:Model 和 View 并无直接关联,而是通过 ViewModel 来进行联系的,当 Model 中的数据改变时会触发 View 层的刷新,View 中由于用户交互操作而改变的数据也会在Model 中同步,实现数据双向绑定。


好处:这种模式实现了 Model 和 View 的数据自动同步,因此开发者只需要专注对数据的维护操作即可,而不需要自己操作 dom。



2e07304157ae4229b02eec3e386be953.png

4、什么是MVC模式


  • MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。
  • Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。
  • View(视图) - 视图代表模型包含的数据的可视化。
  • Controller(控制器) - 控制器作用于模型和视图上。它控制数据流向模型对象,并在数据变化时更新视图。它使视图与模型分离开。


MVC的思想:简单来说,就是Controller负责将Model的数据用View显示出来,将Model的数据展示给用户看,并处理用户对View界面的操作。


3e783ae736104fbe8665193b8d510130.png


5、MVVM和MVC的区别


1、MVVM是对MVC的增强版,将MVC中Controller的数据和逻辑处理部分抽离出来,放在了ViewModel中,这样只需做好View与ViewModel的数据绑定既可。

2、MVVM主要解决了MVC中大量的DOM操作使页面渲染性能降低,加载速度变慢,影响用户体验。当和Model频繁发生变化,开发者需要主动更新到View。


vue 的优点:


1、低耦合。视图(View)可以独立于 Model 变化和修改,一个 ViewModel 可以绑定到不同的"View"上,当 View变化的时候 Model 可以不变,当 Model 变化的时候 View 也可以不变。

2、可重用性。把一些视图逻辑放在一个 ViewModel 里面,让很多 view 重用这段视图逻辑。

3、独立开发。开发人员可以专注于业务逻辑和数据的开发(ViewModel),设计人员可以专注于页面设计。

4、 可测试。界面素来是比较难于测试的,而现在测试可以针对 ViewModel 来写。


6、vue生命周期的理解


6-1、什么是vue的生命周期


  • Vue实例从创建到销毁的过程,就是生命周期。也就是从开始创建(new Vue())、初始化数据、编译模板(created)、挂载Dom→渲染(mounted)、更新→渲染(update)、卸载(destory)等一系列过程,我们称这是Vue 的生命周期。


6-2、vue生命周期的作用是什么


  • 它的生命周期中有多个事件钩子,让我们在控制整个Vue实例的过程时更容易形成好的逻辑。


6-3、vue生命周期总共有几个阶段


  • 它可以总共分为8个阶段:创建前/后, 载入前/后,更新前/后,销毁前/销毁后


6-4、第一次页面加载会触发哪几个钩子?


  • 第一次页面加载时会触发 beforeCreate, created, beforeMount, mounted 这几个钩子


6-5、DOM 渲染在 哪个周期中就已经完成?


  • DOM 渲染在 mounted 中就已经完成了。


6-6、简单描述每个周期具体适合哪些场景?


561dc5d414434577a2a4aa7533d208f2.png


7、v-if 和 v-show 的区别


image.png


共同点:


v-if和v-show都是通过判断绑定数据的true\false来展示的


用法推荐:


v-if更适合于带有权限的操作,渲染时判断权限数据,有则展示该功能,没有则删除。

v-show更适合于日常使用,可以减少数据的渲染,减少不必要的操作。

综上,当我们需要经常切换某个元素的显示/隐藏时,使用v-show会更加节省性能上的开销;当只需要一次显示或隐藏时,使用v-if更加合理。


8、什么是Vuex


Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。每一个 Vuex 应用的核心就是 store(仓库)。“store” 基本上就是一个容器,它包含着你的应用中大部分的状态 ( state )。


(1)Vuex 的状态存储是响应式的。当 Vue 组件从 store 中读取状态的时候,若 store 中的状态发生变化,那么相应的组件也会相应地得到高效更新。

(2)改变 store 中的状态的唯一途径就是显式地提交 (commit) mutation。这样使得我们可以方便地跟踪每一个状态的变化。

(3) 如果不打算开发大型单页应用,使用 Vuex 可能是繁琐冗余的。确实是如此——如果应用够简单,最好不要使用 Vuex。一个简单的 store 模式就足够了。但是,如果需要构建一个中大型单页应用,很可能会考虑如何更好地在组件外部管理状态,Vuex 将会成为自然而然的选择。


image.png


9、Vue 的单向数据流的理解


所有的 prop 都使得其父子 prop 之间形成了一个单向下行绑定:父级 prop 的更新会向下流动到子组件中,但是反过来则不行。

这样会防止从子组件意外改变父级组件的状态,从而导致你的应用的数据流向难以理解。 额外的,每次父级组件发生更新时,子组件中所有的 prop

都将会刷新为最新的值。 这意味着你不应该在一个子组件内部改变 prop。如果你这样做了,Vue 会在浏览器的控制台中发出警告。

子组件想修改时,只能通过 $emit 派发一个自定义事件,父组件接收到后,由父组件修改。


10、computed 和 watch 的区别和运用的场景

相关文章
|
6天前
|
JavaScript 前端开发 API
Vue.js:现代前端开发的强大框架
【10月更文挑战第11天】Vue.js:现代前端开发的强大框架
58 41
|
2天前
|
JavaScript
vue面试
vue面试
8 3
|
4天前
|
前端开发 JavaScript 安全
在vue前端开发中基于refreshToken和axios拦截器实现token的无感刷新
在vue前端开发中基于refreshToken和axios拦截器实现token的无感刷新
28 4
|
8天前
|
JavaScript 前端开发 API
Vue.js:打造高效前端应用的最佳选择
【10月更文挑战第9天】Vue.js:打造高效前端应用的最佳选择
11 2
|
9天前
|
JavaScript 前端开发 Java
VUE学习四:前端模块化,ES6和ES5如何实现模块化
这篇文章介绍了前端模块化的概念,以及如何在ES6和ES5中实现模块化,包括ES6模块化的基本用法、默认导出与混合导出、重命名export和import,以及ES6之前如何通过函数闭包和CommonJS规范实现模块化。
28 0
VUE学习四:前端模块化,ES6和ES5如何实现模块化
|
5天前
|
JSON 前端开发 JavaScript
Vue微前端新探:iframe优雅升级,扬长避短,重获新生
Vue微前端新探:iframe优雅升级,扬长避短,重获新生
27 0
|
5天前
|
JavaScript 前端开发 应用服务中间件
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
38 0
|
5天前
|
JavaScript 前端开发 应用服务中间件
Vue开发中,在实现单页面应用(SPA)前端路由时的hash模式和history模式的区别及详细介绍
Vue开发中,在实现单页面应用(SPA)前端路由时的hash模式和history模式的区别及详细介绍
13 0
|
5天前
|
Web App开发 JavaScript 前端开发
前端Node.js面试题
前端Node.js面试题
|
6天前
|
监控 JavaScript 前端开发
深入了解Vue.js:构建现代前端应用的利器
【10月更文挑战第11天】深入了解Vue.js:构建现代前端应用的利器
10 0