美文网首页
React基本概念

React基本概念

作者: Rella7 | 来源:发表于2020-05-06 14:00 被阅读0次

React是Facebook开发的一款JS库,因为Facebook认为MVC无法满足他们的扩展需求

特点
1.react不使用模板,新的编程语言
2.react不是一个MVC框架,构造组合式用户界面库,可以重用UI组件
3.响应式,数据更新简单,初始化render方法生成标签字符串,插入页面中,数据变化时,render方法会再次被调用,直接重新以最小的方式改变DOM渲染
4.react是一个轻量级的js库

原理
一、虚拟DOM
操作原生DOM需要重新生成DOM树,非常消耗性能
react中把DOM抽象成JS对象,描述页面中的真实DOM,通过diff算法更改虚拟DOM的JS对象,然后渲染成完整的类DOM树,统一更新到页面中
操作虚拟DOM比操作真实DOM消耗小,提升当前效率
虚拟DOM确保只对界面上真正发生变化的部分进行实际DOM操作
web页面是由DOM树构建的,其中一部分发生改变,就会对整个DOM节点发生变化,而react中构建UI界面的思路是由当前的状态决定的,前后两个状态对应两个界面,由react来比较两个界面的区别,Facebook工程师对web界面做了两个假设,使得diff算法的复杂度降到了最低。

1.不同组件产生出的不同DOM结构
对于同层次的一组节点,可以通过id进行区分,在节点上,进行同一位置前后输出的不同类型节点,react直接删除前面的节点,创建并插入到新节点中,删除的节点就会被彻底销毁,删除节点的子节点也会被完全删除,也不会被用户后面来进行比较,
当react 在同一位置遇到不同组件的时候,也是简单销毁第一个组件,把新的组件添加上去,不同组件会产生不同dom结构,与其浪费在结构的比较,得出的结构是不会等价的,还不如重新创建新的替补上去效率更高

2.两个相同组件产生的类似的DOM结构
逐层次来进行节点比较,在react中,树的算法中,两棵树只会对同层次的节点进行比较,就是把之前的树和修改之后的树进行节点的同层次比较,react会对同一个父节点下的所有子节点来进行相关的比较,发现当前节点已经不在了,就会把当前节点和它的子节点完全删除掉,不会进一步的再比较,这样只要遍历一次树,就可以对整个DOM进行完全的比较。所以react只会对同层次的节点前后进行比较,对于不同层次,只有删除创建,当节点发现子节点a不见了,就会直接消除掉a,当发现子节点b多了一个新的子节点,就会在a里面创建子节点,这样就保证了稳定的结构,对性能有大的提升。
我们也可以CSS显示隐藏操作节点,而不是真正的移除或添加DOM节点。
相同的类型节点算法比较简单,react也会对其重新设置的相关节点进行相关比较,对于不在同一层的节点比较,即使完全相同,也会被销毁,并且react重新创建他们,当他们在同一层级,就要用到diff算法。

二、diff算法

历史轴
2013年开源发布

相关文章

  • react 笔记

    react 基本概念解析 react 的组件声明周期 react 高阶组件,context, redux 等高级...

  • React Hooks 入门

    React Hooks 是 React v16.8 版本引入了全新的 API。 React Hooks 基本概念 ...

  • 学习笔记:React概述

    一、概述 1.1、基本概念 react 基础的原理库,主要涉及实现的理念react.js 基于react的,用来w...

  • 一、react入门

    一、react的基本概念 1.1 react的定义:    根据官方文档介绍,react是一个只关注用户界面的js...

  • React.js入门实践:一个酷酷的日历选择器组件

    之前有过一些vue.js的经验,打算学习以下React感受一下差异。看完React的基本概念,觉得react.js...

  • React基本概念

    React是Facebook开发的一款JS库,因为Facebook认为MVC无法满足他们的扩展需求 特点1.rea...

  • antd

    地址:https://ant.design Ant Design of React 1. 基本概念 antd 是基...

  • 学习React总结(1)

    1.React的基本概念 React是Facebook开发出的一款JS库 随着Fackbook的日益壮大认为MVC...

  • 001_ReactNative环境搭建

    基本概念(问渠那得清如许,为有源头活水来。 双手奉上RN官网) react|—react.js(web端js框架,...

  • React-Redux基础

    React-Redux基础 基本概念核心:store ->action ->reducer->state三大原则:...

网友评论

      本文标题:React基本概念

      本文链接:https://www.haomeiwen.com/subject/ylkightx.html