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
    评论
Vue-React组件库的实现原理主要是通过将Vue组件转化为React组件,或将React组件转化为Vue组件,从而实现在VueReact项目中同时使用的目的。 具体来说,Vue-React组件库的实现原理有以下几种方式: 1. 使用Vue-React转换器:Vue-React转换器是一个将Vue组件转换为React组件的工具,可以实现在React项目中使用Vue组件。转换器的实现原理是将Vue组件的模板转换为React组件的JSX语法,再在React项目中引入转换后的React组件。这种方式需要注意Vue组件的语法和React组件的语法差异,以及转换器的兼容性和性能问题。 2. 使用Vue-React组件库:Vue-React组件库是一个同时支持VueReact的UI组件库,可以直接在VueReact项目中使用。组件库的实现原理是针对VueReact两种框架分别提供了组件的实现,通过封装和兼容处理,实现在两种框架中的使用。这种方式需要注意组件的兼容性和性能问题,以及组件库的选择和使用方法。 3. 使用Web Components:Web Components是一种通用的组件规范,可以在各种前端框架中使用。VueReact都支持Web Components规范,因此可以使用Web Components实现在两种框架中共享组件。这种方式需要注意组件的规范和兼容性问题,以及Web Components的使用方法和浏览器支持情况。 需要注意的是,使用Vue-React组件库的方式相对简单,而且在实现原理上比较清晰,因此在实际开发中比较常用。但是,不同的Vue-React组件库实现方式略有不同,需要根据具体组件库的文档进行使用和配置。同时,也需要注意不同框架之间的差异和兼容性问题,避免出现不可预期的错误。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值