命令式开发与声明式开发
首先了解两者的区别
- 命令式开发
关注计算机的执行步骤,每一步都是需要我们关注的。如搭建一个网页,需要我们关注每一个dom元素。 - 声明式开发
不告诉计算机的问题领域,让计算机明白目标而非流程,即只告诉计算机要做什么,而不关注计算机如何去做。
React框架即为声明式开发,就好像盖一座大楼(网页),不管每块砖(dom元素)怎么砌,只给它一张图纸(数据),然后自己自动搭建(渲染)。
与其它框架并存
在自动创建一个React项目后,我们发现在index.html中,只有一个dom元素<div id="root"></div>
,id为root
,react只管理该元素的渲染,如果在首页中添加其它元素,则可以使用其它框架来渲染,互不影响。
组件化
组件定义:定义一个类去继承React.Component
组件首写一般为大写,而HTML5元素都是小写
组件传值:父组件通过属性向子组件传值;子组件通过父组件向子组件传递的方法,子组件调用父组件的方法来实现通信
单向数据流
父组件可以向子组件传递内容,但子组件只能使用而不能改变该内容(可以通过调用父组件的函数来改变父组件内容),否则就会报出错误:
Cannot assign to read only property 'list' of object '#<Object>'
该项规定便于减少bug的产生。
视图层框架
只负责dom元素的渲染,对于复杂的组件直接传值就需要借助其它框架来完成。
如图的组件树,如果D组件要向F组件传值,那么数据的流动方向是:D->C->B->A->E->F,所以在大型项目中较为复杂。
函数式编程
在前端的自动化测试时,如果代码都是由一个个函数组成,那么测试时只需要给函数一个输入值,测试输出是否为预期。