内容简介:一、关于自定义二、使用自定义
-
1、定义一个高阶组件
import React from 'react'; function withCounter(Component) { return class extends React.Component { state = { number: 0 }; componentDidMount() { setInterval(() => { this.setState({ number: this.state.number + 1 }); }, 1000); } render() { return ( <Component number={this.state.number} /> ) } } } 复制代码
-
2、普通组件的代码
class ReuseComponent1 extends React.Component { render() { return ( <> <button>{this.props.number}</button> </> ) } } 复制代码
-
3、使用高阶组件将普通组件包装
export default withCounter(ReuseComponent1); 复制代码
三、使用 render
函数使组件达到复用
-
1、定义组件
import React, { Component } from 'react' export default class ReuseComponent2 extends Component { state = { number: 0 }; componentDidMount() { setInterval(() => { this.setState({ number: this.state.number + 1 }); }, 1000); } render() { return ( <div> {/* 直接调用传递过来的render属性(这里传递的是一个函数) */} {this.props.render({ number: this.state.number })} </div> ) } } 复制代码
-
2、组件的调用
// render里面传递的是一个函数 <ReuseComponent2 render={props => <p>{props.number}</p>} /> 复制代码
四、使用自定义 hooks
一、关于自定义 hooks
的认识
- 1、有时候我们会想要在组件之间重用一些状态逻辑
-
2、自定义
Hook
可以让你在不增加组件的情况下达到同样的目的 -
3、
Hook
是一种复用状态逻辑的方式,它不复用state
本身 -
4、事实上
Hook
的每次调用都有一个完全独立的state
-
5、自定义
Hook
更像是一种约定,而不是一种功能。如果函数的名字以use
开头,并且调用了其他的Hook
,则就称其为一个自定义Hook
二、使用自定义 hooks
达到代码的复用
-
1、自定义
hooks
函数import React, { useState, useEffect } from 'react'; /** * 自定义hooks,以use开头的名字并且使用内置的hooks */ function useNumber() { let [number, setNumber] = useState(0); useEffect(() => { setInterval(() => { setNumber(number => number + 1); }, 1000); }, []); return [number, setNumber]; } 复制代码
-
2、使用
export default () => { let [number, setNumber] = useNumber(); return ( <div>{number}</div> ) } 复制代码
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- React组件间逻辑复用
- React组件化复用的一些技巧
- 使用 React Hooks 创建可复用的动画组件
- vlayout 1.2.19 发布,提供完整布局方案与组件复用
- vlayout 1.2.19 发布,提供完整布局方案与组件复用
- 手摸手教你封装跨项目复用的 Vue 组件
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Mastering Regular Expressions, Second Edition
Jeffrey E F Friedl / O'Reilly Media / 2002-07-15 / USD 39.95
Regular expressions are an extremely powerful tool for manipulating text and data. They have spread like wildfire in recent years, now offered as standard features in Perl, Java, VB.NET and C# (and an......一起来看看 《Mastering Regular Expressions, Second Edition》 这本书的介绍吧!