# React 相关常见问题

# 首先来暖场的

React是哪个公司贡献的开源软件?(呵呵,这个问题虽然无任何实际价值,但是我想React用户应该知道,所谓饮水不忘挖井人)

state和props有什么区别?(这个必须要知道)

什么是JSX?(React用户肯定每天都用)

# 然后稍微提高一点难度

什么时候应该选择用class实现一个组件,什么时候应该用一个函数实现一个组件?

能描述一下React组件的各个生命周期函数吗?(可能并不需要全部列举出来,但是主要的几个必须要知道)

什么是shouldComponentUpdate函数?有什么作用?(React性能提高可主要靠这个了)

当组件的setState函数被调用之后,会发生什么?

为什么我们利用循环产生的组件中要用上key这个特殊的prop?

# 更高阶一点的问题

setState可以接受函数为参数吗?有什么作用?

什么是HoC(Higher-Order Component)?适用于什么场景?

什么是Fiber?是为了解决什么问题?

两个并不是父子关系的组件,如何实现相互的消息传递?请想出尽量多的办法,并说说各自的优缺点。

如果你能够改进React的一样功能,那会是哪一个功能?