1、声明式开发html
与原生DOM、JQuery等命令式编程不一样编程
不经过指令来控制视图变化,是面向数据的编程框架
经过控制数据,改动数据的方式控制视图的变化,DOM的部分React会帮你自动构建dom
2、能够与其余框架并存函数式编程
`ReactDOM.render(<TodoList />, document.getElementById('root'));`函数
如上,React只控制index.html中id=root部分dom的渲染,其余部分不做控制组件化
可被兼容到其余框架中(只要其余框架不影响它)测试
3、组件化调试
每个ReactJS文件都是一个组件,含视图、逻辑操做、数据htm
组件能够被嵌套到其余组件之中
注意组件声明须要首字母大写,如`<TodoList />`
4、单向数据流
子组件对于父组件传递过来的数据是【只读】的
子组件直接不可修改父组件中的数据,只能经过调用父组件传递过来的方法,来间接修改父组件的数据
造成了单向清晰的数据流
防止了当一个父组件的变量被传递到多个子组件中时,一旦该变量被修改,全部传递到子组件的变量都会被修改的问题
这样出现bug调试会比较困难,由于不清楚究竟是哪一个子组件改的
把对父组件的bug调试控制在父组件之中
5、视图层框架
React框架只负责视图层部分的实现,以及父子组件之间简单的通讯
涉及到复杂的跨组件通讯,须要借助Redux等数据层框架实现
这样为搭建小项目提供了简易性,为搭建大项目提供了灵活性
6、函数式编程
每一个功能都是一个小函数,函数大了还能够继续拆分,维护起来比较容易
提升了代码可读性,为后续自动化测试提供了便利