简述一下你对Vue的理解
Vue的作者是尤雨溪,一位华裔前Google工程师(Who)
Vue项目于2014年正式发布,至今已经有6年历史,而在2020年9月18日发布了3.0.0版本One Piece。(When)
Vue是一个渐进式JavaScript 框架,它只负责视图层数据渲染功能,所以就需要很多第三方库来完善更多的扩展功能,以便完成动态构建用户界面的目标。(What)
Vue技术体系应用的场景非常的多,包括PC端SPA网站项目、后台管理系统、移动端Webapp的M站开发、微信小程序的实现以及App应用程序的处理等,应该说包含了多端多设备的不同应用面。(Where)
这是因为Vue有其编码简洁、体积小、 运行效率高、遵循MVVM模式、轻松引入第三方插件与类库使用,能够快速实现应用程序的开发。(Why)
Vue在国内不同类型公司都广受欢迎,包括大型厂家,美团、饿了吗、阿里等,而中小型企业发展更追求速度与效率,所以对于Vue的需求也更为的明确。
2.声明式和命令式编程概念的理解
声明式编程 Declarative Programing,主要关注“我想要什么”,而不关注具体该怎么实现,当你告诉“机器”你想要的是什么(what),让机器想出如何去做(how)。声明式编程的计算在运行时构建完成。
命令式编程 Imperative Programming,命令“机器”如何去做事情(how),这样不管你想要的是什么(what),它都会按照你的命令实现,计算机会严格遵循你的指令,而不理会最后的结果是不是你所想要的。命令式编程的计算在编译时构建完成。JavaScript并非完全是命令式编程,例如:数组的map方法,即为声明式编程。
3.Vue 有哪些基本特征
声明式编程(没有DOM操作)
响应式数据
双向数据绑定
4.vue之防止页面加载时看到花括号解决方案有哪几种?
v-cloak用于大段内容,这个指令保持在元素上直到关联实例结束编译。和 CSS 规则如 [v-cloak] { display: none } 一起用时,这个指令可以隐藏未编译的标签直到实例准备完毕
<style> [v-cloak]{display:none} </style>
利用v-text、v-html代替插值表达式,v-text用于单个标签、v-html用于带有标签的处理
{{}}插值表达式是v-text的缩写,最终还是会解析成v-text的模式
5.Vue中v-for与v-if能否一起使用?
不能
这需要考虑到v-for与v-if的优先级顺序问题,当它们处于同一节点,v-for的优先级比v-if更高,这意味着 v-if将分别重复运行于每个 v-for循环中
如果对于整体循环内容的控制,建议将条件判断编写至v-for循环的外部
如果需要对每个循环内容进行条件判断的话,建议编写computed属性计算进行对应内容的控制