1、MVC是什么?MVVM又是什么?有何特点?
(评分标准:MVC 5分,Model-View-Controller2分,每层功能1分;MVVM 5分,双向数据绑定2分,每层功能1分)
MVC模式(Model-View-Controller) 是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。
MVC的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。除此之外,此模式通过对复杂度的简化,使程序结构更加直观。软件系统通过对自身基本部分分离的同时也赋予了各个基本部分应有的功能。
模型(Model)- 用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法
视图(View) - 数据展示。
控制器(Controller)- 起到不同层面间的组织作用,用于控制应用程序的流程。它处理事件并作出响应
MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式,其核心是提供对View 和 ViewModel 的双向数据绑定,这使得ViewModel 的状态改变可以自动传递给 View,即所谓的数据双向绑定。
MVVM 由 Model,View,ViewModel 三部分构成,Model 层代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑;View 代表UI 组件,它负责将数据模型转化成UI 展现出来,ViewModel 是一个同步View 和 Model的对象。
在MVVM架构下,View 和 Model 之间并没有直接的联系,而是通过ViewModel进行交互,Model 和 ViewModel 之间的交互是双向的, 因此View 数据的变化会同步到Model中,而Model 数据的变化也会立即反应到View 上。
ViewModel 通过双向数据绑定把 View 层和 Model 层连接了起来,而View 和 Model 之间的同步工作完全是自动的,无需人为干涉,因此开发者只需关注业务逻辑,不需要手动操作DOM, 不需要关注数据状态的同步问题,复杂的数据状态维护完全由 MVVM 来统一管理
2、谈谈你对Vue、Vuex、vue-router、vue-resource以及单文件vue的认识
(评分标准:每个2分)
Vue是一款轻量级的构建用户界面的MVVM渐进式框架,特点双向数据绑定、声明式指令、组件化。
Vuex是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。在这种模式下,我们的组件树构成了一个巨大的“视图”,不管在树的哪个位置,任何组件都能获取状态或者触发行为!
另外,通过定义和隔离状态管理中的各种概念并强制遵守一定的规则,我们的代码将会变得更结构化且易维护。
vue-router vue中的路由插件,从而创建单页应用
vue-resource vue中的Ajax插件,跟后端进行数据交互,以及设置ajax前后的加载动画
.vue 即single-file components(单文件组件)就是vue中定义的组件,包含结构、样式以及javascript模块导出,能够完整的语法高亮,ComonJS/ES6模块,组件化的css
3、列举Vue中的指令,并说明作用,不少于10个
(评分标准:每个1分)
3-1.v-for遍历数组或者对象,添加到要重复的元素上
3-2.v-bind:prop 绑定属性
3-3.v-on:click 绑定事件
3-4.v-if 通过元素的插入删除进行显示隐藏
3-5.v-show通过元素的display:block/none进行显示隐藏
3-6.v-clock阻止页面闪烁,添加到有插值表达式元素上,或者直接添加到body
3-7.v-model 定义数据,并实现数据双向绑定
3-8.v-text更新元素的文本内容,相当于{{}}插值表达式
3-9.v-pre 跳过这个元素和它的子元素的编译过程。可以用来显示原始 Mustache 标签。跳过大量没有指令的节点会加快编译。
3-10 .v-once 只渲染元素和组件一次。随后的重新渲染,元素/组件及其所有的子节点将被视为静态内容并跳过。这可以用于优化更新性能