1.说说你对react的理解?有哪些特性?
react是一个简单的javascript UI库,用于构建高效,快速的用户界面
它是一个轻量级库,因此很受大家的欢迎,它遵循组件设计的模式,声明式编程范式和函数式编程概念,以使前端应用程序更高效。
它使用虚拟dom来有效的操作dom,他遵循从高级组件到低级组件的单向数据流。
react它是有很多的特性的,例如:
jsx语法,单向数据绑定,虚拟dom,声明式编程,component等
优势上它可以做到:
高效灵活,声明式的设计,简单使用,组件式的开发,提高代码的复用率,单向响应的数据流会比双向绑定的更加安全,速度更快。
使用单向数据流很安全,更好的跟踪数据变化,轻松实现数据绑定。
react是javascript构建用户界面的库,提供了ui层面的解决方案,尊重组件设计模式,声明范式编程和函数式编程,以使前端应用程序更加高效。
使用jsx语法可以在js代码中插入xml代码快速构建应用程序,具有较高的可读性。
react类组件中使用一个名为reader的方法而函数组件使用return,返回所需要的内容。
2.说说Real DOM和Virtual DOM的区别,优缺点?
Real DOM,真实DOM,意思为文档对象模型,是一个结构化的文本的的抽象,在页面渲染出的每个一个结点都是一个真实的Dom结构。
Virtual DOM,本质上是以javascript对象形式在对dom的描述,创建虚拟dom目的就是为了更好将虚拟的节点渲染到页面视图中,虚拟dom对象的节点与真是dom的属性一一对应
在react中,jsx是其中的一大特性,可以让你在js中通过xml的方式直接声明界面的dom结构。
而它们区别:
虚拟dom不会进行排版与重绘操作,而真实dom会频繁的排版与重绘。
虚拟dom的总损耗是“虚拟dom增删查改+真是dom差异增删查改+排版与重绘”,真实dm的总损耗是“真是dom完全的增删改查+排版与重绘”。
真是dom的优势:
易用
缺点:
效率低,解析速度慢,内存占用量过高
性能差:频繁操作真是dom,易于导致重绘与回流
使用虚拟dom的优势:
简单方便:如果使用手动操作真是dom来完成页面,繁琐又容易出错,在发规模应用维护起来也困难
性能方面:使用虚拟dom能够有效的避免真是dom数频繁更新,减少多次引起重绘与回流,提高性能
跨平台:react借助虚拟dom,带来了跨平台的能力,一套代码多端运行
缺点:
在一些性能要求极高的应用中虚拟dom无法进行针对性的极致优化
首次渲染大量的dom时,由于多了一层虚拟dom的计算,速度比正常稍慢
3.react生命周期有哪些不同的阶段?每个阶段对应的方法是?
跟vue一样,react整个组件的生命周期包括创建,初始化数据,编译模板,挂载dom->渲染,更新->渲染,卸载等一系列过程
react生命周期,可以分为三个阶段:
创建阶段,更新阶段,卸载阶段
创建阶段
constructor
getDerivedStateFromProps
render
componentDidMount
constructor:实例过程中自动调用的方法,在方法内部通过super关键字获取来自父组件的props在该方法中,通过的操作为初始化的state状态或者在this上挂载方法
getDerivedStateFromProps:该方法是新增的生命周期方法,是一个静态的方法,因为不能访问到组件的实例,执行时机:组件创建和更新阶段,不论是props还是state变化,也会调用在每次render方法前调用,第一个参数为即将更新的props,第二个参数为上一个状态的state,可以比较props和state来加一些限制条件,防止御用的state更新该方法需要返回一个新的对象作为新的state或者