内容简介:一、关于自定义二、使用自定义
-
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 组件
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Java JDK6学习笔记
林信良 / 清华大学出版社 / 2007-4 / 59.90元
《Java JDK6学习笔记》是作者良葛格本人近几年来学习Java的心得笔记,结构按照作者的学习脉络依次展开,从什么是Java、如何配置Java开发环境、基本的Java语法到程序流程控制、管理类文件、异常处理、枚举类型、泛型、J2SE中标准的API等均进行了详细介绍。本书还安排了一个“文字编辑器”的专题制作。此外,Java SE6的新功能,对Java lang等套件的功能加强,以及JDBC4.0、......一起来看看 《Java JDK6学习笔记》 这本书的介绍吧!