全网最全的Vue 面试题

2,461 阅读13分钟

Vue 面试题

感谢浪子神剑-github整理的文档。本文便于自己学习所用,所有连接均指向原文仓库地址,本文markdown文件可到 本人仓库获取

(原文链接vue 248个知识点(面试题)为你保驾护航)

vue

  1. 你知道 vue 的模板语法用的是哪个 web 模板引擎的吗?说说你对这模板引擎的理解

  2. 你知道 v-model 的原理吗?说说看

  3. 你有使用过 vue 开发多语言项目吗?说说你的做法?

  4. 在使用计算属性的时,函数名和 data 数据源中的数据可以同名吗?

  5. vue 中 data 的属性可以和 methods 中的方法同名吗?为什么?

  6. 怎么给 vue 定义全局的方法?

  7. vue2.0 不再支持 v-html 中使用过滤器了怎么办?

  8. 怎么解决 vue 打包后静态资源图片失效的问题?

  9. 怎么解决 vue 动态设置 img 的 src 不生效的问题?

  10. 使用 vue 后怎么针对搜索引擎做 seo 优化?

  11. 跟 keep-alive 有关的生命周期是哪些?描述下这些生命周期

  12. 如果现在让你从 vue/react/angularjs 三个中选择一个,你会选哪个?说说你的理由

  13. 你知道 vue2.0 兼容 ie 哪个版本以上吗?

  14. 使用 vue 开发一个 todo 小应用,谈下你的思路

  15. 你有看过 vue 推荐的风格指南吗?列举出你知道的几条

  16. 你是从 vue 哪个版本开始用的?你知道 1.x 和 2.x 有什么区别吗?

  17. 你知道 vue 中 key 的原理吗?说说你对它的理解

  18. vue 中怎么重置 data?

  19. vue 渲染模板时怎么保留模板中的 html 注释呢?

  20. vue.observable 你有了解过吗?说说看

  21. 你知道 style 加 scoped 属性的用途和原理吗?

  22. 你期待 vue3.0 有什么功能或者改进的地方?

  23. vue 边界情况有哪些?

  24. 如何在子组件中访问父组件的实例?

  25. watch 的属性用箭头函数定义结果会怎么样?

  26. 在 vue 项目中如果 methods 的方法用箭头函数定义结果会怎么样?

  27. 在 vue 项目中如何配置 favicon?

  28. 你有使用过 babel-polyfill 模块吗?主要是用来做什么的?

  29. 说说你对 vue 的错误处理的了解?

  30. 在 vue 事件中传入$event,使用 e.target 和 e.currenttarget 有什么区别?

  31. 在.vue 文件中 style 是必须的吗?那 script 是必须的吗?为什么?

  32. vue 怎么实现强制刷新组件?

  33. vue 自定义事件中父组件怎么接收子组件的多个参数?

  34. 实际工作中,你总结的 vue 最佳实践有哪些?

  35. vue 给组件绑定自定义事件无效怎么解决?

  36. vue 的属性名称与 method 的方法名称一样时会发生什么问题?

  37. vue 变量名如果以_、$开头的属性会发生什么问题?怎么访问到它们的值?

  38. vue 使用 v-for 遍历对象时,是按什么顺序遍历的?如何保证顺序?

  39. vue 如果想扩展某个现有的组件时,怎么做呢?

  40. 说下$attrs$listeners的使用场景

  41. 分析下 vue 项目本地开发完成后部署到服务器后报 404 是什么原因呢?

  42. v-once 的使用场景有哪些?

  43. 说说你对 vue 的表单修饰符.lazy 的理解

  44. vue 为什么要求组件模板只能有一个根元素?

  45. eventbus 注册在全局上时,路由切换时会重复触发事件,如何解决呢?

  46. 怎么修改 vue 打包后生成文件路径?

  47. 你有使用做过 vue 与原生 app 交互吗?说说 vue 与 ap 交互的方法

  48. 使用 vue 写一个 tab 切换

  49. vue 中什么是递归组件?举个例子说明下?

  50. 怎么访问到子组件的实例或者子元素?

  51. 在子组件中怎么访问到父组件的实例?

  52. 在组件中怎么访问到根实例?

  53. 说说你对 object.defineproperty 的理解

  54. vue 组件里写的原生 addeventlisteners 监听事件,要手动去销毁吗?为什么?

  55. vue 组件里的定时器要怎么销毁?

  56. vue 组件会在什么时候下被销毁?

  57. 使用 vue 渲染大量数据时应该怎么优化?说下你的思路!

  58. 在 vue 中使用 this 应该注意哪些问题?

  59. 你有使用过 jsx 吗?说说你对 jsx 的理解

  60. 说说组件的命名规范

  61. 怎么配置使 vue2.0+支持 typescript 写法?

  62. <template></template>有什么用?

  63. vue 的 is 这个特性你有用过吗?主要用在哪些方面?

  64. vue 的:class 和:style 有几种表示方式?

  65. 你了解什么是函数式组件吗?

  66. vue 怎么改变插入模板的分隔符?

  67. 组件中写 name 选项有什么作用?

  68. 说说你对 provide 和 inject 的理解

  69. 开发过程中有使用过 devtools 吗?

  70. 说说你对 slot 的理解有多少?slot 使用场景有哪些?

  71. 你有使用过动态组件吗?说说你对它的理解

  72. prop 验证的 type 类型有哪几种?

  73. prop 是怎么做验证的?可以设置默认值吗?

  74. 怎么缓存当前打开的路由组件,缓存后想更新当前组件怎么办呢?

  75. 说说你对 vue 组件的设计原则的理解

  76. 你了解 vue 的 diff 算法吗?

  77. vue 如何优化首页的加载速度?

  78. vue 打包成最终的文件有哪些?

  79. ajax、fetch、axios 这三都有什么区别?

  80. vue 能监听到数组变化的方法有哪些?为什么这些方法能监听到呢?

  81. vue 中是如何使用 event 对象的?

  82. vue 首页白屏是什么问题引起的?如何解决呢?

  83. 说说你对单向数据流和双向数据流的理解

  84. 移动端 ui 你用的是哪个 ui 库?有遇到过什么问题吗?

  85. 你知道 nexttick 的原理吗?

  86. 说说你对 v-clock 和 v-pre 指令的理解

  87. 写出你知道的表单修饰符和事件修饰符

  88. 说说你对 proxy 的理解

  89. 你有自己用 vue 写过 ui 组件库吗?

  90. 用 vue 怎么实现一个换肤的功能?

  91. 有在 vue 中使用过 echarts 吗?踩过哪些坑?如何解决的?

  92. 如果让你教一个 2-3 年经验前端经验的同事使用 vue,你该怎么教?

  93. vue 性能的优化的方法有哪些?

  94. ssr 解决了什么问题?有做过 ssr 吗?你是怎么做的?

  95. 说说你觉得认为的 vue 开发规范有哪些?

  96. vue 部署上线前需要做哪些准备工作?

  97. vue 过渡动画实现的方式有哪些?

  98. vue 在 created 和 mounted 这两个生命周期中请求数据有什么区别呢?

  99. vue 父子组件双向绑定的方法有哪些?

  100. vue 怎么获取 dom 节点?

  101. vue 项目有做过单元测试吗?

  102. vue 项目有使用过 npm run build --report 吗?

  103. 如何解决 vue 打包 vendor 过大的问题?

  104. webpack 打包 vue 速度太慢怎么办?

  105. vue 在开发过程中要同时跟 n 个不同的后端人员联调接口(请求的 url 不一样)时你该怎么办?

  106. vue 要做权限管理该怎么做?如果控制到按钮级别的权限怎么做?

  107. 说下你的 vue 项目的目录结构,如果是大型项目你该怎么划分结构和划分组件呢?

  108. 在移动端使用 vue,你觉得最佳实践有哪些?

  109. 你们项目为什么会选 vue 而不选择其它的框架呢?

  110. 对于即将到来的 vue3.0 特性你有什么了解的吗?

  111. vue 开发过程中你有使用什么辅助工具吗?

  112. vue 和微信小程序写法上有什么区别?

  113. 怎么缓存当前的组件?缓存后怎么更新?

  114. 你了解什么是高阶组件吗?可否举个例子说明下?

  115. 为什么我们写组件的时候可以写在.vue 里呢?可以是别的文件名后缀吗?

  116. vue-loader 是什么?它有什么作用?

  117. 说说你对 vue 的 extend(构造器)的理解,它主要是用来做什么的?

  118. 如果将 axios 异步请求同步化处理?

  119. 怎么捕获组件 vue 的错误信息?

  120. 为什么 vue 使用异步更新组件?

  121. 如何实现一个虚拟 dom?说说你的思路

  122. 写出多种定义组件模板的方法

  123. spa 单页面的实现方式有哪些?

  124. 说说你对 spa 单页面的理解,它的优缺点分别是什么?

  125. 说说你都用 vue 做过哪些类型的项目?

  126. 在 vue 项目中如何引入第三方库(比如 jquery)?有哪些方法可以做到?

  127. 使用 vue 手写一个过滤器

  128. 你有使用过 render 函数吗?有什么好处?

  129. 写出你常用的指令有哪些?

  130. 手写一个自定义指令及写出如何调用

  131. 组件进来请求接口时你是放在哪个生命周期?为什么?

  132. 你有用过事件总线(eventbus)吗?说说你的理解

  133. 说说 vue 的优缺点分别是什么?

  134. dom 渲染在哪个周期中就已经完成了?

  135. 第一次加载页面时会触发哪几个钩子?

  136. vue 生命周期总共有几个阶段?

  137. vue 生命周期的作用是什么?

  138. vue 和 angular 有什么区别呢?

  139. 如何引入 scss?引入后如何使用?

  140. 使用 vue 开发过程你是怎么做接口管理的?

  141. 为何官方推荐使用 axios 而不用 vue-resource?

  142. 你了解 axios 的原理吗?有看过它的源码吗?

  143. 你有封装过 axios 吗?主要是封装哪方面的?

  144. 如何中断 axios 的请求?

  145. axios 是什么?怎样使用它?怎么解决跨域的问题?

  146. 说说你对 vue 的 template 编译的理解?

  147. v-on 可以绑定多个方法吗?

  148. vue 常用的修饰符有哪些?列举并说明

  149. 你认为 vue 的核心是什么?

  150. v-model 是什么?有什么用呢?

  151. 说说你对 vue 的 mixin 的理解,有什么应用场景?

  152. spa 首屏加载速度慢的怎么解决?

  153. 删除数组用 delete 和 vue.delete 有什么区别?

  154. 动态给 vue 的 data 添加一个新的属性时会发生什么?怎样解决?

  155. 组件和插件有什么区别?

  156. 说说你使用 vue 过程中遇到的问题(坑)有哪些,你是怎么解决的?

  157. 说说你对选项 el,template,render 的理解

  158. vue 实例挂载的过程是什么?

  159. vue 在组件中引入插件的方法有哪些?

  160. v-if 和 v-for 的优先级是什么?如果这两个同时出现时,那应该怎么优化才能得到更好的性能?

  161. 分别说说 vue 能监听到数组或对象变化的场景,还有哪些场景是监听不到的?无法监听时有什么解决方案?

  162. $nexttick 有什么作用?

  163. 为什么 data 属性必须声明为返回一个初始数据对应的函数呢?

  164. 怎么在 watch 监听开始之后立即被调用?

  165. watch 怎么深度监听对象变化?

  166. watch 和计算属性有什么区别?

  167. vue 如何监听键盘事件?

  168. v-for 循环中 key 有什么作用?

  169. 怎么在 vue 中使用插件?

  170. 你有写过自定义组件吗?

  171. 说说你对 keep-alive 的理解是什么?

  172. 怎么使 css 样式只在当前组件中生效?

  173. 你有看过 vue 的源码吗?如果有那就说说看

  174. 你有写过自定义指令吗?自定义指令的生命周期(钩子函数)有哪些?

  175. v-show 和 v-if 有什么区别?使用场景分别是什么?

  176. 说说你对 mvc、mvp、mvvm 模式的理解

  177. 说下你对指令的理解?

  178. 请描述下 vue 的生命周期是什么?

  179. vue 组件之间的通信都有哪些?

  180. 什么是虚拟 dom?

  181. 什么是双向绑定?原理是什么?

  182. vue 和 react 有什么不同?使用场景是什么?

  183. 说说 vue 的优缺点

  184. 有使用过 vue 吗?说说你对 vue 的理解

vue-cli

  1. vue-cli 提供了的哪几种脚手架模板?

  2. vue-cli 工程中常用的 npm 命令有哪些?

  3. 在使用 vue-cli 开发 vue 项目时,自动刷新页面的原理你了解吗?

  4. vue-cli3 插件有写过吗?怎么写一个代码生成插件?

  5. vue-cli 生成的项目可以使用 es6、es7 的语法吗?为什么?

  6. vue-cli 怎么解决跨域的问题?

  7. vue-cli 中你经常的加载器有哪些?

  8. 你知道什么是脚手架吗?

  9. 说下你了解的 vue-cli 原理?你可以自己实现个类 vue-cli 吗?

  10. 怎么使用 vue-cli3 创建一个项目?

  11. vue-cli3 你有使用过吗?它和 2.x 版本有什么区别?

  12. vue-cli 默认是单页面的,那要弄成多页面该怎么办呢?

  13. 不用 vue-cli,你自己有搭建过 vue 的开发环境吗?流程是什么?

vue-router

  1. vue-router 怎么重定向页面?
  2. vue-router 怎么配置 404 页面?
  3. 切换路由时,需要保存草稿的功能,怎么实现呢?
  4. vue-router 路由有几种模式?说说它们的区别?
  5. vue-router 有哪几种导航钩子( 导航守卫 )?
  6. 说说你对 router-link 的了解
  7. vue-router 如何响应路由参数的变化?
  8. 你有看过 vue-router 的源码吗?说说看
  9. 切换到新路由时,页面要滚动到顶部或保持原先的滚动位置怎么做呢?
  10. 在什么场景下会用到嵌套路由?
  11. 如何获取路由传过来的参数?
  12. 说说 active-class 是哪个组件的属性?
  13. 在 vue 组件中怎么获取到当前的路由信息?
  14. vur-router 怎么重定向?
  15. 怎样动态加载路由?
  16. 怎么实现路由懒加载呢?
  17. 如果让你从零开始写一个 vue 路由,说说你的思路
  18. 说说 vue-router 完整的导航解析流程是什么?
  19. 路由之间是怎么跳转的?有哪些方式?
  20. 如果 vue-router 使用 history 模式,部署时要注意什么?
  21. route 和 router 有什么区别?
  22. vue-router 钩子函数有哪些?都有哪些参数?
  23. vue-router 是用来做什么的?它有哪些组件?

vuex

  1. 你有写过 vuex 中 store 的插件吗?
  2. 你有使用过 vuex 的 module 吗?主要是在什么场景下使用?
  3. vuex 中 actions 和 mutations 有什么区别?
  4. vuex 使用 actions 时不支持多参数传递怎么办?
  5. 你觉得 vuex 有什么缺点?
  6. 你觉得要是不用 vuex 的话会带来哪些问题?
  7. vuex 怎么知道 state 是通过 mutation 修改还是外部直接修改的?
  8. 请求数据是写在组件的 methods 中还是在 vuex 的 action 中?
  9. 怎么监听 vuex 数据的变化?
  10. vuex 的 action 和 mutation 的特性是什么?有什么区别?
  11. 页面刷新后 vuex 的 state 数据丢失怎么解决?
  12. vuex 的 state、getter、mutation、action、module 特性分别是什么?
  13. vuex 的 store 有几个属性值?分别讲讲它们的作用是什么?
  14. 你理解的 vuex 是什么呢?哪些场景会用到?不用会有问题吗?有哪些特性?
  15. 使用 vuex 的优势是什么?
  16. 有用过 vuex 吗?它主要解决的是什么问题?推荐在哪些场景用?

ElementUI

  1. elementui 是怎么做表单验证的?在循环里对每个 input 验证怎么做呢?
  2. 你有二次封装过 elementui 组件吗?
  3. elementui 怎么修改组件的默认样式?
  4. elementui 的穿梭组件如果数据量大会变卡怎么解决不卡的问题呢?
  5. elementui 表格组件如何实现动态表头?
  6. elementui 使用表格组件时有遇到过问题吗?
  7. 有阅读过 elementui 的源码吗?
  8. 项目中有使用过 elementui 吗?有遇到过哪些问题?它的使用场景主要是哪些?
  9. 有用过哪些 vue 的 ui?说说它们的优缺点?

mint-ui

  1. mint-ui 使用过程中有没有遇到什么坑?怎么解决的?
  2. 说出几个 mint-ui 常用的组件
  3. mint-ui 是什么?你有使用过吗?