1.MVC模型(Model-View-Controller)(1)model就是模型,负责接受来自controller的请求并返回数据(2)View就是view,就是用户看到的交互界面(3)controller是接受用户输入并调用模型和视图以满足用户需求的控制器,负责接受请求并选择调用哪个模型来处理请求。(4)优秀的单体:多个视图可以共享一个模型(5)缺点:部分视图与控制器密切相关,不利于视图或控制器的独立复用。2.MVVM模型(Model-View-ViewModel)设计这个模型的初衷是:关注Model的变化,让MVVM框架自动更新DOM的状态,让开发者从繁琐的DOM中解放出来操作。M是数据,V是视图。ViewModel通过双向数据绑定连接Model和View,专门从事数据分析。Vue是一套基于MVVM模型的框架,Model是JS数组、对象等数据部分,View是页面视图部分,ViewModel是指Vue的实例化对象。3、Vue的生命周期每个Vue实例都有一个从创建到销毁的过程。这个过程就是Vue的生命周期。Vue的生命周期有几个阶段,Vue也提供了钩子函数供我们在Vue生命周期的不同阶段运行(以Vue属性的形式添加,不能使用箭头函数,涉及到)(1)beforeCreate:就在实例被创建之后,数据和方法还没有被初始化。(2)create:数据和方法初始化后,mount阶段开始前,模板编译还没有开始(3)beforeMount:mount阶段开始时,模板已经编译,还没有放到页面中(无法访问真正的DOM结构)(4)mounted:已经挂载到指定的容器中。(vm.$el已经创建,可以访问真实DOM结构)(5)beforeUpdate:数据更新(6)updated:数据更新(7)beforeDestroy:实例销毁前(8)destroy:实例销毁后4、Vue条件渲染(1)v-if:用于有条件地渲染一段内容,如果v-if表达式的值为false,则不渲染该内容。也试试模板标签。使用v-if进行渲染切换非常昂贵。(2)v-show:始终渲染指定的内容。如果v-show的表达式为false,内容依然渲染,但是display是none,但是对template标签不适用(template标签的内容仍然显示在页面上面,没有template后台DOM中的标签)只有v-show的初始渲染开销较高。给组件绑定条件渲染时,如果是v-if,切换时会触发mounted,如果是v-show,则不会(可以使用keep-alive,让v绑定的组件切换-if不会触发mounted)5.vue列表渲染(1)v-for可以渲染一个数组,格式:v-for="item,items中的index"(index可以省略,items是vue中声明的数组instance),操作数据时,不要直接使用下标,而是使用pop/push/splice/shift/sort/slice/reverse这七种方法或者直接改变数组,或者使用set方法:Vue.set(vm.arr,index,value)或vm.$set(vm.arr,index,value)。(2)v-for也可以渲染一个对象,格式:v-for="value,key,indexinobject"(key,index可以省略,object是在vue实例中声明的对象),直接给一个对象属性修改可以实时显示,但是直接增加或删除对象属性不会更新显示。(要直接改引用,或者用Vue.set(vm.obj,"key",value)或vm.$set(vm.obj,"key",value)方法)(3)添加时增加,删除或者切换列表的顺序性能,往往会为每个item提供一个唯一的key属性,可以在渲染数组的时候绑定index:v-bind:key="index",可以绑定key(健康值)渲染对象时:v-bind:key="key"。6、Vue的模板语法:(1)插值表达式{{}},只接受表达式(加法、减法、三元等),不接受语句(赋值、判断等)(2)v-text:
