一、MVVM
MVVM(Model-View-ViewModel)是一种设计思想。Model表示数据层,在Model中定义数据修改和操作的业务逻辑;View是视图层,通过模板语法将数据渲染到DOM上。ViewModel是连接View和Model的桥梁,通过数据绑定将Model和View绑定起来。
二、Vue的理解
1、什么是Vue
Vue是一个构建数据驱动web的渐进式框架,通过核心的响应式数据绑定系统和尽可能简单的API实现响应式的数据绑定的视图组件。
2、vue的优点
响应式编程 通过MVVM设计模式实现数据和视图的响应式更新,从而不需要开发者手动操作DOM,更关注于业务逻辑本身
组件化开发 Vue通过组件将一个单页应用中的各个模块拆分到一个个组件中去,我们只需要写好各个组件之间的关联通信,就能讲这些组件组成一个完整的应用。这样做的好处是:能充分进行复杂业务解耦,提高开发效率,方便重复使用,提升项目的可维护性,便于协同开发。
虚拟DOM 传统的前端页面开发,开发者需要频繁的操作DOM,浏览器需要不停的渲染新的DOM树,性能开销极大。Vue通过VirtualDom,提前计算DOM的变化并形成变化后的新DOM结构,最后只要一次更新渲染即可
三、Vue的生命周期
1、Vue的生命周期是什么
vue的生命周期就是vue实例从创建到销毁的整个过程。
vue生命周期过程中运行着一些函数,给予了开发者在不同阶段添加业务代码的能力,这些函数叫做钩子函数。
2、Vue的生命周期都有那些
vue的生命周期分为8个阶段 1. beforeCreate:vue实例创建前,此阶段,实例中的data、methods等数据都还未初始化,无法访问 2. created:vue实例创建后,此阶段已完成了数据监测,可以进行数据的访问和修改。但还不能进行DOM操作,如需操作DOM,使用$nextTick 3. beforeMount:实例挂载到页面节点之前,此时template模板已经导入编译函数,虚拟DOM已经构建完成 4. mounted:实例挂载到页面节点上后,真实DOM已经渲染完成,数据已经完成双向绑定,此阶段已经可以进行DOM操作了 5. beforeUpdate:响应式数据更新之前,DOM重新渲染之前,此阶段修改数据不会触发DOM的重复渲染 6. updated:组件DOM更新渲染之后,若在此阶段修改数据,需要注意防止出现无限循环更新 7. beforeDestroy:实例销毁之前,此阶段仍能访问vue实例,可以进行一些收尾的操作,比如清楚定时器 8. destroyed:实例销毁之后,只剩下空壳DOM,组件已被拆解,数据绑定移除,监听移除
3、多组件生命周期的运行顺序
渲染过程 父组件beforeCreate ——> 父组件created ——> 父组件beforeMount ——> 子组件beforeCreate ——> 子组件created ——> 子组件beforeMount ——> 子组件mounted ——> 父组件mounted
更新过程 父组件beforeUpdate ——> 子组件beforeUpdate ——> 子组件uodated ——> 父组件updated
销毁过程 父组件beforeDestroyed ——> 子组件beforeDestroyed ——> 子组件destroyed ——> 父组件 destroyed