Skip to content

Vue 系列 ​

说说你对 vue 的理解? ​

  • 从历史说起
  • vue 是什么
  • Vue 核心特性
    • 数据驱动、组件化、指令系统
  • Vue 跟传统开发的区别
    • Vue 所有的界面事件,都是只去操作数据的,Jquery 操作 DOM
    • Vue 所有界面的变动,都是根据数据自动绑定出来的,Jquery 操作 DOM
  • Vue 和 React 对比

说说你对 SPA(单页应用)的理解? ​

  • 什么是 SPA

  • SPA 和 MPA 的区别

    • 优点:
      • 具有桌面应用的即时性、网站的可移植性和可访问性
      • 用户体验好、快,内容的改变不需要重新加载整个页面
      • 良好的前后端分离,分工更明确
    • 缺点:
      • 不利于搜索引擎的抓取
      • 首次渲染速度相对较慢

Vue 实例挂载的过程中发生了什么? ​

说说你对 Vue 生命周期的理解? ​

  • 生命周期是什么
    • 从创建、初始化数据、编译模板、挂载 Dom→ 渲染、更新 → 渲染、卸载等一系列过程我们可以把组件比喻成工厂里面的一条流水线
  • 生命周期有哪些
    • 8 个阶段:创建前后, 载入前后,更新前后,销毁前销毁后
    • 以及一些特殊场景的生命周期
  • 生命周期的执行顺序
  • 生命周期整体流程

为什么 Vue 中的 v-if 和 v-for 不建议一起用? ​

SPA(单页应用)首屏加载速度慢怎么解决? ​

为什么 data 属性是一个函数而不是一个对象? ​

Vue 中给对象添加新属性界面不刷新? ​

Vue 中组件和插件有什么区别? ​

  • 组件是什么
    • 组件就是把图形、非图形的各种逻辑均抽象为一个统一的概念(组件)来实现开发的模式,
    • 组件的优势
      • 降低整个系统的耦合度,
      • 调试方便,
      • 提高可维护性,
  • 插件是什么
    • 插件通常用来为 Vue 添加全局功能
      • 添加全局方法或者属性。如: vue-custom-element
      • 添加全局资源:指令/过滤器/过渡等。如 vue-touch
      • 通过全局混入来添加一些组件选项。如 vue-router
      • 添加 Vue 实例方法,通过把它们添加到 Vue.prototype 上实现。
      • 一个库,提供自己的 API,同时提供上面提到的一个或多个功能。如 vue-router
  • 两者的区别
    • 编写形式
    • 注册形式
    • 使用场景

Vue 组件间通信方式都有哪些? ​

说说你对双向绑定的理解? ​

说说你对 nexttick 的理解? ​

  • NextTick 是什么
    • 在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM
  • 为什么要有 nexttick
  • 使用场景
    • 如果想要在修改数据后立刻得到更新后的 DOM 结构,可以使用 Vue.nextTick()
  • 实现原理

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

  • mixin 是什么
    • mixin(混入),提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。
  • 使用场景
  • 源码分析
    • 替换型策略:有 props、methods、inject、computed
    • 合并型策略:是 data, 通过 set 方法进行合并和重新赋值
    • 队列型策略: 有生命周期函数和 watch,原理是将函数存入一个数组,然后正序遍历依次执行
    • 叠加型: component、directives、filters,通过原型链进行层层的叠加

说说你对 slot 的理解?slot 使用场景有哪些? ​

  • slot 是什么
    • 在 HTML 中 slot 元素 ,作为 Web Components 技术套件的一部分,是 Web 组件内的一个占位符,该占位符可以在后期使用自己的标记语言填充
  • 使用场景
    • 通过插槽可以让用户可以拓展组件,去更好地复用组件和对其做定制化处理
  • 分类
    • 默认插槽
    • 具名插槽
    • 作用域插槽
  • 原理分析
    • slot 本质上是返回 VNode 的函数,一般情况下,Vue 中的组件要渲染到页面上需要经过 template -> render function -> VNode -> DOM 过程

Vue.observable 你有了解过吗?说说看 ​

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

怎么缓存当前的组件?缓存后怎么更新?说说你对 keep-alive 的理解是什么? ​

  • Keep-alive 是什么
    • keep-alive 是 vue 中的内置组件,能在组件切换过程中将状态保留在内存中,防止重复渲染 DOM
    • keep-alive 可以设置以下 props 属性:include ,exclude ,max
    • 设置了 keep-alive 缓存的组件,会多出两个生命周期钩子(activated 与 deactivated)
  • 使用场景
  • 原理分析

Vue 常用的修饰符有哪些?有什么应用场景? ​

  • 修饰符是什么
    • 在 Vue 中,修饰符处理了许多 DOM 事件的细节,让我们不再需要花大量的时间去处理这些烦恼的事情,而能有更多的精力专注于程序的逻辑处理
  • 表单修饰符
    • lazy,trim,number
  • 事件修饰符
    • stop,prevent,self,once,capture,passive,native
  • 鼠标按键修饰符
    • left 左键点击,right 右键点击,middle 中键点击
  • 键值修饰符
    • 普通键(enter、tab、delete、space、esc、up...),系统修饰键(ctrl、alt、meta、shift...)
  • v-bind 修饰符
    • async,prop,camel

你有写过自定义指令吗?自定义指令的应用场景有哪些? ​

Vue 中的过滤器了解吗?过滤器的应用场景有哪些? ​

什么是虚拟 DOM?如何实现一个虚拟 DOM?说说你的思路 ​

你了解 vue 的 diff 算法吗?说说看 ​

Vue 项目中有封装过 axios 吗?主要是封装哪方面的? ​

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

SSR 解决了什么问题?有做过 SSR 吗?你是怎么做的? ​

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

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

Vue 项目中你是如何解决跨域的呢? ​

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

你是怎么处理 vue 项目中的错误的? ​

Vue3 有了解过吗?能说说跟 Vue2 的区别吗? ​

Vue3 系列 ( 已完结..) ​

Vue3.0 的设计目标是什么?做了哪些优化? ​

Vue3.0 性能提升主要是通过哪几方面体现的? ​

Vue3.0 里为什么要用 Proxy API 替代 defineProperty API ? ​

Vue3.0 所采用的 Composition Api 与 Vue2.x 使用的 Options Api 有什么不同? ​

说说 Vue 3.0 中 Treeshaking 特性?举例说明一下? ​

用 Vue3.0 写过组件吗?如果想实现一个 Modal 你会怎么设计? ​

Released under the MIT License.