14.React特点:声明式框架、可以与其他框架共存、组件化、单向数据流、视图层框架、函数式编程 - yiqunkeke/react-jianshu-shangguigu-zty GitHub Wiki
-
声明式框架:
jquery这种操作DOM的,是命令式编程
React中无需操作DOM,是面向数据编程的。是声明式框架。
-
可以与其他框架并存:
React 只负责渲染 id=root 的节点。
完全可以在 id=root的节点下面使用 jquery,vue,angular。每一个库只管理自己对应的DOM。相互之间不会有任何影响。
-
组件化
如何定义组件?
class TodoItem extends React.Component {}
如何区分页面中的内容是一个组件还是一个元素?
普通标签是小写开头,组件以大写字母开头
父子组件传值?
父组件通过属性方式向子组件传值
子组件想操作父组件中的数据怎么办?
首先需要通过父组件向子组件传递一个方法。子组件去调用父组件的这个方法,间接地操作父组件中的数据。从而实现子组件和父组件的通信。
总结:父组件通过属性方式向子组件传值。子组件通过方法反过来去调用父组件中的数据,改变父组件中的数据。
-
单向数据流
父组件可以向子组件传递值。但是子组件只能使用这个值。绝对不可以改变这个值。
如果子组件需要改变父组件中的值,则一定要将一个方法传递给子组件,在子组件中去调用父组件中的这个方法。通过这个方法去改变父组件中的数据。 所有需要改变父组件数据的方法都在父组件中去维护,这样出现问题时,定位问题就方便多了。
-
视图层框架
React并不是什么问题都解决,它只负责页面和数据渲染上的问题。至于组件之间怎么传值,React并不负责,而交给其他框架来做。在简单的项目中,比如todolist,只靠React内部提供的传值机制就可以解决传值问题。
但是在大型项目中,React单单来使用是绝对不够的。所以需要使用redux等数据型框架。
这就是为什么React把自己称之为一个视图层框架。而不是一个大型的完整的框架。
-
函数式编程
在React中,写的都是函数。函数式编程的好处:
-
维护容易。可以拆分函数,每个函数各司其职。
-
面向测试的开发流程:给前端自动化测试带来很大的便捷性。
-