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.