文章目录
-
- v-show 和 v-if 的区别
- 为何在 v-for 中用 key
- Vue 组件如何通讯 ( 常见 )
- 描述组件渲染和更新的过程
- 双向数据绑定 v-model 的实现原理
- 对 MVVM 的理解
- computed 有何特点
- 为何组件 data 必须是一个函数 ?
- ajax 请求应该放在哪个生命周期
- 如何将组件所有 props 传递给子组件 ?
- 如何自己实现 v-model
- 多个组件有相同的逻辑,如何抽离 ?
- 何时要使用异步组件 ?
- 何时需要使用 keep-alive ?
- 何时需要使用 beforeDestory
- Vuex 中 action 和 mutation 有何区别
- Vue-router 常用的路由模式
- 如何配置 Vue-router 异步加载
- 请用 vnode 描述一个 DOM 结构
- 监听 data 变化的核心 API 是什么
- Vue 如何监听数组变化
- 请描述响应式原理
- diff 算法的时间复杂度
- 简述 diff 算法过程
- Vue 为何是异步渲染,$nextTick 何用 ?
- Vue 常见性能优化方式
v-show 和 v-if 的区别
- v-show 通过CSSdisplay 控制显示和隐藏
- v-if 组件真正的渲染和销毁,而不是显示和隐藏
- 频繁切换显示状态用 v-show,否则用 v-if
为何在 v-for 中用 key
- 必须用 key,且不能是index和random
- diff 算法中通过tag 和 key 来判断,是否是sameNode
- 减少渲染次数,提升渲染性能
Vue 组件如何通讯 ( 常见 )
- 父子组件props和this.$emit
- 自定义事件event. n o e v e n t . no event. noevent.off event.$emit
- vuex
描述组件渲染和更新的过程
- 响应式监听属性变化
- 模板渲染
- 虚拟dom
- 执行render函数的时候会触发touch触发getter,触发getter之后会收集依赖到watcherÿ