vue异步请求和同步_VUE知识点集锦

8d70d6ed242e7a4a96a77a440be8283e.png

MVVM模式

核心理念:

通过声明式的数据绑定 来实现 View 层和其他层的分离;

Model 层

Model 层,对应数据层的域模型,它主要做域模型的同步。通过 Ajax/fetch 等 API 完成客户端和服务端业务 Model 的同步。在层间关系里,它主要用于抽象出 ViewModel 中视图的 Model。(域模型:融合了行为和数据的域的对象模型)

View 层

View 层,作为视图模板存在,在 MVVM 里,整个 View 是一个动态模板。除了定义结构、布局外,它展示的是 ViewModel 层的数据和状态。View 层不负责处理状态,View 层做的是 数据绑定的声明、 指令的声明、 事件绑定的声明。

ViewModel 层

ViewModel 层把 View 需要的层数据暴露,并对 View 层的 数据绑定声明、 指令声明、 事件绑定声明 负责,也就是处理 View 层的具体业务逻辑。ViewModel 底层会做好绑定属性的监听。当 ViewModel 中数据变化,View 层会得到更新;而当 View 中声明了数据的双向绑定(通常是表单元素),框架也会监听 View 层(表单)值的变化。一旦值变化,View 层绑定的 ViewModel 中的数据也会得到自动更新。

模式

MVVM作为数据绑定的入口,整合Observer、Compile和Watcher三者,通过Observer来监听自己的model数据变化,通过Compile来解析编译模板指令,最终利用Watcher搭起Observer和Compile之间的通信桥梁,达到数据变化 -> 视图更新;视图交互变化(input) -> 数据model变更的双向绑定效果。(Observer:数据监听器,观察者;Compile:指令编译器;Watcher:订阅者;)

b525acf7a0ba101a6af5ba3ed586ee5b.png

VUE的生命周期

var app = new Vue({})

所有的Vue应用都是从这里开始的,当实例化出Vue对象时就已经进入了Vue的生命周期。

1)进入的生命周期第一个钩子函数就是beforeCreate。在这之前组件还没有真正的初始化。

2)在beforeCreate之后,Vue对data对象作了getter/setter处理,并且将对象放在一个Observe里面以便于监控对象,另外还有使用initEvents绑定事件

3)在组件初始化完成后,遇到第二个钩子函数:created。在这个阶段我们可以访问到了data的属性以及绑定的事件

4)通过了created阶段后组件的生命周期到了beforemount,在这个阶段DOM结构还没有生成,但是已经创建了el,组件挂载的根节点。在beforemount执行完成后开始渲染DOM,执行_render方法,_mount方法,然后会有new出一个watcher对象,形成VNode节点,然后会更新DOM

5)渲染完毕后组件就会到了下一个生命周期mounted,一般的异步请求都会写在这,这个阶段DOM已经渲染出来了。至此一个组件已经完整的出现在眼前了,但是生命周期却还没有停止。

6)当组件需要更新的时候生命周期会先到达beforeUpdate,在这个阶段显示数据并没有更新,但是DOM中的数据已经改变了,这是因为双向绑定的关系

7)走过beforeUpdate组件完成了更新,生命周期走到updated

8)完成更新后的组件应该被销毁了,beforeDestroy,这个阶段组件还没有被销毁

destroy这个是真正的销毁

46e4b23bb2b014c64758ac383135207c.png

Computed和watch的区别

Computed: -->计算属性

1支持缓存,只有依赖数据发生改变,才会重新进行计算

2)不支持异步

3)如果一个属性是由其他属性计算而来,这个属性依赖其他属性,多对一(多个值影响一个值)的情况一般用computed;

Watch: -->监听属性

监听属性;一定是存在的属性;是data中的属性;

1)不支持缓存,数据变化,直接会触发相应的操作

2)支持异步

3)当一个属性发生变化时,需要执行对应的操作;一对多(一个值影响多个值)的情况一般用watch;

微信关注:Web前端小白的全栈之路

加我好友,拉入微信群

053b2633e22d498a79c1987f55e2cee1.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值