react基础知识

73 阅读2分钟

react

redux中间件的applyMiddleware是为了扩展dispatch的功能的, 不使用中间件的情况下dispatch只能接收一个对象作为参数, 中间件可以使其接收一个function/promise

react为什么有hooks

react的核心思想就是将页面拆分成一个个可复用的组件, 用从上到下的单向数据流方式将他们串联起来,传统的class定义的组件本身包含了很多state状态,难以复用。 在hooks之前可以使用 渲染属性 高阶组件 这两种方式都可以起到增强组件的作用,但是代码不简洁,曾大了组件间的层级嵌套

react渲染属性 render props

给组件传一个render属性,这个属性的值是一个函数,这个函数会返回一个组件,在组件渲染的时候通通this.props.render()方法调用渲染组件。 这种方法可以动态的传值,增强组件的复用性

react高阶组件

高阶组件其实不是一个组件,而是一个函数,会接收一个组件作为参数,经过改造再返回一个新的组件。 高阶组件可以增强组件的复用性 对逻辑进行抽象 属性代理:是从组合的方式出发,有利于从外部去操作组件,可以操作props 反向继承:是继承方式操作组件,操作内部的state 生命周期 render函数

ref只能声明在类组件上,不能在函数式组件上声明,函数式组件(无状态组件)没有实例

类组件 函数式组件

类组件不足:1.复用性低 组件本身会有很多状态 2.难以维护 生命周期中可能有很多不相干的逻辑 很多state状态 3.this指向问题

react context

context为了解决组件间传值的问题,如果层级多的话使用props传值非常的不方便 在组件之间共享此类值得方式,不需要在通过组件树进行一层一层的传递 在某个节点提供了context后,所有的后代节点都可以获取到共享的数据