Vue面试题10问

?来源:

村长的vue面试训练营

?题目汇总

  1. v-if 和 v-for优先级
  2. Vue组件data选项为什么必须是个函数而Vue的根实力则没有此限制
  1. 你知道key的作用和工作远离吗?说说你
  2. 对它的理解
  1. 你怎么理解vue中的diff算法
  2. 谈一谈对vue组件化的理解
  1. 谈一谈对vue设计的原则的理解
  2. 谈谈你对MVC、MVP和MVVM的理解
  1. 你了解哪些vue性能优化的方法
  2. vue3新特性
  1. vuex使用及理解
  2. vue中组件之间的通信方式?
  1. vue-router中如何保护指定路由的安全?
  2. 你知道nextTick吗?他是干什么的?实现原理是什么?
  1. 谈一谈你对vue响应式原理的理解?
  2. 总结

?问点

这么多题,花里胡哨的,面试官到底是在问什么?

  1. v-if 和 v-for哪个优先级高
  2. vue组件data为什么要函数形式
  1. key的作用和原理
  2. 介绍一下diff算法,谈谈你的理解
  1. 介绍一下vue组件化的理解
  2. vue的设计理念是什么
  1. MVC、MVP和MVVM
  2. vue优化
  1. vue3新特性
  2. vuex使用及理解
  1. vue组件通信原理
  2. vueRouter原理
  1. nextTick原理
  2. vue响应式原理

?正式开始了

1. v-if 和 v-for优先级

  1. v-for 优先于 v-if被解析,因为当 v-for 和 v-if 同时出现在一个标签内时,在源码里会先进性for循环,当本次循环完成,返回数据时如果有 v-if 出现,那么就会判断是否为 true,true 就会返回循环生成的内容_l( ),false 会返回一个_el( ),所以v-for优先级更高。
  2. 如果同时出现,每次渲染都会先执行循环再判断条件,无论如何都不可避免,浪费了性能
  3. 解决方案:在v-for外层嵌套template,在这一次进行v-if判断,然后在内部进行v-for循环

2. Vue组件data选项为什么必须是个函数而Vue的根实例则没有此限制

Vue组件可能存在多个实例,如果使用对象形式定义data,则会导致他们公用一个data对象,那么状态变更将会影响所有组件实例,这是不合理的;采用函数形式定义,在initDta时会将其作为i给阐述返回新的data对象,有效规避多实例之间状态污染问题。而在Vue根实例创建过程中则不存在改限制,也是因为根实例只能有一个,不需要但现这种情况

?持续更新中,待我学完的

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享