响应式系统与React|青训营笔记

125 阅读2分钟

响应式系统与React|青训营笔记

这是我参与「第四届青训营 」笔记创作活动的第5天

今天学习的是react框架,是前端几个重要的框架之一

  关于React的历史就不详细的讲述了,它是由Jordan Walke创造了FaxJs演变而来的,最后由
Facebook开源了React供大家使用。
  开源之后程序员就开发了各种React的新工具来方便人们使用。

React是如何被创造的呢?为什么要创造React呢?

  创造React主要是由于原生的JS在某些方便使用起来不是很方便,有时候还很困难很繁琐,例如在原生的JS中

  • 状态更新,UI不会自动更新,需要手动地调用DOM
  • 欠缺基本的代码层面的封装和隔离,代码层面没有组件
  • UI之间的数据依赖关系,需要手动维护,如果依赖链路长,则会遇到"Callback Hell”。

  所以为了使JS更方便的使用,更好的服务于程序员,所以开发了React,React解决了上述问题,例如组件化减少了代码的重复,提高了代码的利用效率。同样的解决了状态更新的问题。

React是如何的去解决上述的问题呢?

状态更新

  例如在类式组件中,所有的状态都储存在state中,如果需要去改变状态,只需要去调用
this.state()函数即可。当然React还提供了其他函数,在不同的时候浏览器会自动的调用这些函
数。下图中就是React提供的各种函数供程序员操作。

image.png

组件化

  在React中将代码进行封装组件化,
  • 组件声明了状态和UI的映射。
  • 组件有Props/State 两种状态。(state是储存自己的状态,props是接收其他组件传过来的数 据。)
  • “组件”可由其他组件拼装而成。(这就是React的组件化,将每一个功能都分成小的一个组件, 这样可以减少代码之间的重复率,提高效率)

数据的传递

  React使用props去接收其他组件传递过来的参数。

如何去传递参数呢?

  只需要在组件中直接写,例如

<App name={this.state.name}> 这样就可以将本组件中的name的内容传递给App组件,在App组件中使用props来接收传过来的参数。

总结

  关于React,虽然之前学习过一点相关的知识,但是经过今天的学习发现了自己还有很多的不足,例如,自己只是去学习相关的用法,并没有去认识并学习React的某些不足之处。