一、说说你对Vue的理解
Vue是用于创建用户界面的开源JavaScript框架,也是一个创建单页应用的Web应用框架。Vue可以组件化,组件化就是把图形、非图形的各种逻辑抽象为一个统一的组件。
组件化的优势:
- 降低整个系统的耦合度
- 方便调试,出现问题可以快速定位。
- 提高可维护性 同时,Vue的所有界面事件是操作数据,所有界面的变动,都是根据数据自动绑定出来的,而不是直接操作DOM。
二、 v-show和v-if有什么区别?使用场景分别是什么?
相同点:v-show 和 v-if 都是控制dom元素在页面是否显示。
不同点:
- v-show 是控制属性 display 来控制元素在页面是否显示,占据文档位置。
- 由
false变为true的时候不会触发组件的生命周期
- 由
- v-if 是通过增加或删除dom节点来说控制元素的是否显示,不占据文档位置。
- 由
false变为true的时候,触发组件的beforeCreate、create、beforeMount、mounted钩子,由true变为false的时候触发组件的beforeDestory、destoryed方法 如果需要频繁地切换,使用v-show,提高系统的性能。
- 由
三、为什么v-if 和 v-for不建议一起用
v-for 的优先级高于v-if,放在一起使用,先进行v-for判断,会带来性能方面的浪费(会先循环再进行条件判断)。如何避免,可以在外层嵌套template进行v-if判断,然后在内部进行v-for循环。如果条件出现在循环内部,可以通过计算属性computed提前过滤不需要显示的项目。