vue高频考题
整理了一下常见的vue的问题
vue的问题整理的不太多,一些基础的并没有整理出来
什么是 MVVM?比之 MVC 有什么区别?什么又是 MVP ?
阮老师说的就很详细 戳我戳我
Vue 的各个生命阶段是什么?
Vue 组件间的参数传递方式
普通的组件传值可以去我其他的博客搜一下,这里重点说一下 多个子组件嵌套
使用 provider/inject,在父组件中通过 provider 提供变量,在子组件中通过inject 来将变量注入到组件中。不论子组件有多深,只要调用了 inject 那么就可以注入 provider 中的数据。
computed 和 watch 的差异
computed 是计算一个新的属性,并将该属性挂载到 Vue 实例上,而 watch 是监听已经存在且已挂载到 Vue 实例上的数据,所以用 watch 同样可以监听 computed 计算属性的变化。
computed 本质是一个惰性求值的观察者,具有缓存性,只有当依赖变化后,第一次访问computed 属性,才会计算新的值。而 watch 则是当数据发生变化便会调用执行函数。
从使用场景上说,computed 适用一个数据被多个数据影响,而 watch 适用一个数据影响多个数据。
v-model的实现原理以及如何自定义v-model
vue响应式数据原理?
什么是 Virtual DOM?如何比较两个 DOM 树的差异?
vue 中 key 值的作用?
vue 中 key 值的作用可以分为两种情况来考虑。
第一种情况是 v-if 中使用 key。由于 Vue 会尽可能高效地渲染元素,通常会复用已有元素而
不是从头开始渲染。因此当我们使用 v-if 来实现元素切换的时候,如果切换前后含有相同类
型的元素,那么这个元素就会被复用。如果是相同的 input 元素,那么切换前后用户的输入不
会被清除掉,这样是不符合需求的。因此我们可以通过使用 key 来唯一的标识一个元素,这个
情况下,使用 key 的元素不会被复用。这个时候 key 的作用是用来标识一个独立的元素。
第二种情况是 v-for 中使用 key。用 v-for 更新已渲染过的元素列表时,它默认使用“就地
复用”的策略。如果数据项的顺序发生了改变,Vue 不会移动 DOM 元素来匹配数据项的顺序,
而是简单复用此处的每个元素。因此通过为每个列表项提供一个 key 值,来以便 Vue 跟踪元
素的身份,从而高效的实现复用。这个时候 key 的作用是为了高效的更新渲染虚拟 DOM。
没有整理的题目
- Vue中如何检测数组变化
- 为何Vue采用异步处理
- nextTick的实现原理
- Vue中v-html会导致哪些问题
- 组件中的data为什么是一个函数
- Vue中常见性能优化
- keep-alive的了解
- 如何实现hash路由和history路由
(未完待续…)