React原理的认识

49 篇文章 1 订阅
37 篇文章 0 订阅

React原理的认识

今天被一个朋友问到React的背景和原理,我记得自己以前总结过,但是还是有点懵,所以再写一下,增加自己的认知。

React是MVC架构的V层,React把每一个组件当成一个状态机

在通常web应用开发时,我们总是需要将数据实时的展示到页面中去,以往的开发模式是每当数据产生变化,总是重新渲染整个页面,即使只改变一小部分,也会渲染整个页面,这就导致了性能的低下。为此React引入了虚拟DOM(virtual dom),虚拟dom的原理是每当数据产生变化,React会重新构建整个dom树,然后React通过内置的diff算法,将重新构建的dom树和上一次的dom树进行比较,得到dom的区别,然后仅仅将产生变化的部分进行实际的浏览器dom更新。

尽管每一次的数据变化都会重新构建dom树,但是虚拟dom是内存数据,内存的性能极高,对实际dom操作仅仅是diff部分,因而达到提高性能的目的。

这样在保证性能的同时,开发者将不在需要关注某个数据的变化如何更新到一个或多个具体的dom元素。React大大降低了逻辑的复杂性,降低开发难度

组件化

虚拟dom不仅带来了简单的UI开发逻辑,同时也带来了组件化开发的思想,组件就是封装起来具有独立功能的UI组件。UI上每一个功能相对独立的模块定义成组件,小的组件构成大的组件,最终完成UI的构建。

MVC的 开发模式做到了模型视图控制器的分离,将前后端分离,开发者以技术的角度对UI进行拆分

对于React来说,是从功能的角度出发,将UI拆分成不同的组件,每个组件都进行独立的封装

组件的特征

  • 可组合:一个组件和其他组件一起使用,或嵌套在另一个组件内部
  • 可重用:每个组件都有重复的功能,可在多个场景使用
  • 可维护:每个小的组件包含自身的逻辑,更容易被理解

Vue的原理

主要是 双向数据绑定(响应式的数据绑定)

vue双向数据绑定的原理

利用了Object.defineProperty这个方法重新定义了对象 获取属性值(set)和(get)设置属性值

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值