摘要:
context就是用来更方便的实现全局数据共享的,但是由于它并不是那么好用,所以我们一般会使用第三方状态管理器来实现全局数据共享 redux dva mobx useContext(context)是针对context上下文提出的一个Hooks提出的一个API,它接收React.createCont 阅读全文
摘要:
useEffect 副作用处理钩子 数据获取、订阅、定时执行任务、手动修改ReactDOM这些行为都可以成为副作用。而useEffect就是为了处理这些副作用而生的。 useEffect也是componentDidMount、componentDidUpdate和componentWillUnmou 阅读全文
摘要:
useState 组件状态管理钩子 useState能使组件能够使用state 基本使用如下所示: state是要设置的状态 setState是更新state的方法,只是一个方法名,可以随意更改 initState是初始的state,可以是随意的数据类型,也可以是回调函数,但是函数必须是有返回值 完 阅读全文
摘要:
HOOK是React 16.8的新增特性。它可以让你在不编写class的情况下使用state以及其他React特性。HOOK没出现之前,在函数式组件里面只能根据父组件传入的props做一些处理,现在HOOK出现,就可以在函数式组件里面使用state、生命周期等等。 在我们继续之前,请记住HOOK是: 阅读全文
摘要:
上下文context有两个角色 Provider 数据提供 Consumer 数据读取 使用context可以避免通过中间元素传递props,context的设计目的是为了共享对于一个组件树而言是“全局”的数据 不使用context的情况下的代码: 注:不使用context的话,需要层层组件prop 阅读全文
摘要:
由于高阶组件链式调用的写法看起来比较的麻烦也不好理解。逻辑会看的比较绕 ES7就出现了装饰器的语法,专门拿来处理这种问题的 安装支持装饰器语法的babel编译插件 *npm install --save-dev @babel/plugin-proposal-decorators *更改 config 阅读全文
摘要:
使用情况如下: * 编写一个高阶组件进行属性的添加 * 编写一个高级组件编写生命周期 * 然后将以上两个高阶组件进行链式调用 示例 * 编写高阶组件进行属性的添加(返回的是函数组件): * 编写高阶组件重写生命周期(返回的是class组件): *链式调用 widthLearnReact为HOC组件添 阅读全文
摘要:
高阶组件一HOC(Highter-Order Components) 高阶组件是为了提高组件的复用率而出现的,抽离出具有相同逻辑或相同展示的组件 高阶组件其实是一个函数,接收一个组件,然后返回一个新的组件,返回的这个新的组件可以对属性进行包装,也可以重写部分生命周期 使用例子如下: 注:高阶组件一般 阅读全文
摘要:
React官方说任何一个组件集成实现的用组件复合都可以去实现。所以可以放心的去使用 组件复合类似于我们在vue框架里面用的组件插槽 具体使用方式如下: 示例: *写法一(类似vue中匿名插槽): *写法二(类似vue具名插槽): 父组件定义: 传给子组件: 子组件接收: 阅读全文
摘要:
React.memo是一个高阶组件的写法 React.memo让函数组件也拥有了PrueComponent的功能 使用例子如下: 示例: //改写上一个随笔里面的Title组件 阅读全文
摘要:
PureComponent是内部制定了shouldComponentUpdate生命周期的Component *它重写了一个方法来替换shouldComponentUpdate生命周期方法 平常开发过程中设计组件能使用PureComponent的地方都尽量使用 想要使用PrueComponent特性 阅读全文