面试题系列一

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或者

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值