14.React特点:声明式框架、可以与其他框架共存、组件化、单向数据流、视图层框架、函数式编程 - yiqunkeke/react-jianshu-shangguigu-zty GitHub Wiki

  1. 声明式框架:

    jquery这种操作DOM的,是命令式编程

    React中无需操作DOM,是面向数据编程的。是声明式框架。

  2. 可以与其他框架并存:

    React 只负责渲染 id=root 的节点。

    完全可以在 id=root的节点下面使用 jquery,vue,angular。每一个库只管理自己对应的DOM。相互之间不会有任何影响。

  3. 组件化

    如何定义组件? class TodoItem extends React.Component {}

    如何区分页面中的内容是一个组件还是一个元素? 普通标签是小写开头,组件以大写字母开头

    父子组件传值? 父组件通过属性方式向子组件传值

    子组件想操作父组件中的数据怎么办? 首先需要通过父组件向子组件传递一个方法。子组件去调用父组件的这个方法,间接地操作父组件中的数据。从而实现子组件和父组件的通信。

    总结:父组件通过属性方式向子组件传值。子组件通过方法反过来去调用父组件中的数据,改变父组件中的数据。

  4. 单向数据流

    父组件可以向子组件传递值。但是子组件只能使用这个值。绝对不可以改变这个值。

    如果子组件需要改变父组件中的值,则一定要将一个方法传递给子组件,在子组件中去调用父组件中的这个方法。通过这个方法去改变父组件中的数据。 所有需要改变父组件数据的方法都在父组件中去维护,这样出现问题时,定位问题就方便多了。

  5. 视图层框架

    React并不是什么问题都解决,它只负责页面和数据渲染上的问题。至于组件之间怎么传值,React并不负责,而交给其他框架来做。在简单的项目中,比如todolist,只靠React内部提供的传值机制就可以解决传值问题。

    但是在大型项目中,React单单来使用是绝对不够的。所以需要使用redux等数据型框架

    这就是为什么React把自己称之为一个视图层框架。而不是一个大型的完整的框架。

  6. 函数式编程

    在React中,写的都是函数。函数式编程的好处:

    • 维护容易。可以拆分函数,每个函数各司其职。

    • 面向测试的开发流程:给前端自动化测试带来很大的便捷性。