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 添加全局功能
- 两者的区别
- 编写形式
- 注册形式
- 使用场景
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