?来源:
村长的vue面试训练营
?题目汇总
- v-if 和 v-for优先级
- Vue组件data选项为什么必须是个函数而Vue的根实力则没有此限制
- 你知道key的作用和工作远离吗?说说你
- 对它的理解
- 你怎么理解vue中的diff算法
- 谈一谈对vue组件化的理解
- 谈一谈对vue设计的原则的理解
- 谈谈你对MVC、MVP和MVVM的理解
- 你了解哪些vue性能优化的方法
- vue3新特性
- vuex使用及理解
- vue中组件之间的通信方式?
- vue-router中如何保护指定路由的安全?
- 你知道nextTick吗?他是干什么的?实现原理是什么?
- 谈一谈你对vue响应式原理的理解?
- 总结
?问点
这么多题,花里胡哨的,面试官到底是在问什么?
- v-if 和 v-for哪个优先级高
- vue组件data为什么要函数形式
- key的作用和原理
- 介绍一下diff算法,谈谈你的理解
- 介绍一下vue组件化的理解
- vue的设计理念是什么
- MVC、MVP和MVVM
- vue优化
- vue3新特性
- vuex使用及理解
- vue组件通信原理
- vueRouter原理
- nextTick原理
- vue响应式原理
?正式开始了
1. v-if 和 v-for优先级
- v-for 优先于 v-if被解析,因为当 v-for 和 v-if 同时出现在一个标签内时,在源码里会先进性for循环,当本次循环完成,返回数据时如果有 v-if 出现,那么就会判断是否为 true,true 就会返回循环生成的内容_l( ),false 会返回一个_el( ),所以v-for优先级更高。
- 如果同时出现,每次渲染都会先执行循环再判断条件,无论如何都不可避免,浪费了性能
- 解决方案:在v-for外层嵌套template,在这一次进行v-if判断,然后在内部进行v-for循环
2. Vue组件data选项为什么必须是个函数而Vue的根实例则没有此限制
Vue组件可能存在多个实例,如果使用对象形式定义data,则会导致他们公用一个data对象,那么状态变更将会影响所有组件实例,这是不合理的;采用函数形式定义,在initDta时会将其作为i给阐述返回新的data对象,有效规避多实例之间状态污染问题。而在Vue根实例创建过程中则不存在改限制,也是因为根实例只能有一个,不需要但现这种情况
?持续更新中,待我学完的
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END