- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第
一篇Vue、React重点详解大全
目录Vue生命周期MVVM双向绑定原理虚拟domv-for为什么要用keynextTickv-show、v-if的区别vue单页面应用如何首页优化Vue的父组件和子组件生命周期钩子执行顺序是什么Vue中的computed是如何实现的React不同之处vue和react的区别
Vue
生命周期
vue2:
总共分为8个阶段:创建前/后,载入前/后,更新前/后,销毁前/后。
创建前/后:在beforeCreate阶段,由于还未初始化,vue实例的挂载元素el和数据对象data都为undefined。在created阶段,vue实例的数据对象data有了,el还没有。载入前/后:在beforeMount阶段,vue实例的$el和data都初始化了,但挂载之前还是为虚拟的dom节点,data.message还未替换。在mounted阶段,vue实例挂载完成,data.message成功渲染。更新前/后:当data变化时,会触发beforeUpdate和updated方法。销毁前/后:在执行destroy方法后,对data的改变不会再触发周期函数,说明此时vue实例已经解除了事件监听以及和dom的绑定,但是dom结构依然存在。
vue3:
beforeCreate-使用setup()created-使用setup()beforeMount-onBeforeMountmounted-onMountedbeforeUpdate-onBeforeUpdateupdated-onUpdatedbeforeDestroy-onBeforeUnmountdestroyed-onUnmountederrorCaptured-onErrorCaptured
MVVM
mvvm是一种设计思想。
Model代表数据模型,可以在model中定义数据修改和操作的业务逻辑;
view表示ui组件,负责将数据模型转换为ui展现出来,它做的是数据绑定的声明、指令的声明、事件绑定的声明。
而viewModel是一个同步view和model的对象。
在mvvm框架中,view和model之间没有直接的关系,它们是通过viewModel来进行交互的。
mvvm不需要手动操作dom,只需要关注业务逻辑就可以了。
mvvm的核心是数据劫持、数据代理、数据编译和发布订阅模式。
mvvm和mvc的区别在于:mvvm是数据驱动的,而MVC是dom驱动的。
mvvm的优点在于不用操作大量的dom,不需要关注model和view之间的关系,而MVC需要在model发生改变时,需要手动的去更新view。
大量操作dom使页面渲染性能降低,使加载速度变慢,影响用户体验。
双向绑定原理
vue2是利用ES5的Object.defineProperty,
局限:只能监听对象属性的变化;不能利用索引直接设置一个数组项,也不能修改数组的长度
Object.defineProperty(object,key,{
get(){returnbValue;},
set(newValue){bValue=newValue;},
enumerable:true,
configurable:true
});
Vue3.0中的响应式采用了ES6中的Proxy方法,可以监听对象某个属性值的变化,还可以监听对象属性的新增和删除,而且还可以监听数组。
varproxy=newProxy({},{
get:function(target,propKey){
return35;
set:function(obj,prop,value){
obj[prop]=value;
returntrue;
});
虚拟dom
虚拟dom本质是将目标所需的UI通过数据结构虚拟地表示出来,保存在内存中,然后将真实的DOM与之保持同步。
在渲染之前,会使用新生成的虚拟节点和上一次生成的虚拟节点进行对比,只渲染不同的部分。
虚拟DOM在vue中主要提供与真实节点对应的虚拟节点vnode,然后需要将vnode和oldVnode进行比对,然后更新视图,对比两个虚拟节点的算法是patch算法。
(在vue里面diff算法就是通过patch函数来完成的,所有有的时候也叫patch算法.)
v-for为
您可能关注的文档
最近下载
- 公务接待审批单(模板).docx VIP
- 外科手消毒教学课件PPT模板(框架完整).pptx
- 新标准商务英语综合教程2Unit5课件.pptx
- 最新:2024湖北省医疗服务价格项目及医保支付目录(完整版) .pdf VIP
- 新标准商务英语综合教程2Unit2课件.pptx
- GB 7251.6-2015 低压成套开关设备和控制设备 第6部分:母线干线系统(母线槽).docx VIP
- 改变生活的生物技术-杂交育种.pdf VIP
- 装饰公司装修工程售后服务承诺书.doc VIP
- 《PHP Web应用开发案例教程》教学课件 第11章-MySQL数据库基础.pptx VIP
- 林业经济管理学最新完整版本.ppt VIP
文档评论(0)