react-10(stateHook,effect Hook)

本文深入探讨React 16.8引入的State Hook和Effect Hook。通过实例解析,阐述如何在不使用类组件的情况下,利用useState处理状态,以及如何用useEffect替代生命周期方法,包括componentDidMount、componentDidUpdate和componentWillUnmount,并讲解了Hook的使用规则。
摘要由CSDN通过智能技术生成

State Hook

1、16.8以后的新特性,现在可用

2、我们之前的组件都是以类的概念来实现的,里面可以 写函数、属性、state、视图,hook就是让我们在不写类的情况下也能实现效果,hook在类组件丽不生效。 (函数组件 )

3、没有计划移除class,hook和class并存。(可以写类组件,也可以写函数组件)

hook是什么?

        hook是react的一个特殊的函数,可以引入react的特性,系统的调用函数,useState()后面就带了个括号。

state Hook声明:

        在函数组件中,我们没有 this,所以我们不能分配或读取 this.state ,使用useState,我们可以直接拿到。

const [state, setState] = useState(initialState);
// [属性名,改变属性方法] = useState(属性初始值);

const [state, setState] = useState(function);
// [属性名,改变属性方法] = useState(需要通过计算得到初始值的方法);

函数组件对比类组件:

函数组件对比类组件
函数组件(hook) 类组件
不需要赋值this.state 需要赋值this.state
更新数据直接更新 需要调用this.stestate
直接使用数据 需要调用this.state.xxx使用数据

对比代码示例: 

 类组件:

import React, { Component } from 'react'

export default class classComponent extends Component {
    constructor(props){
        super(props)
        /**
         * 初始化:需要赋值
         */
        this.state={
            counter:100
        }
    }

    handleClick = ()=>{
        /**
         * 更改数据:需要使用setState({})
         */
        this.setState({counter:200})
    }

    render() {
        //  const {counter} = this.state
        return (
            <div>
                class组件
                {/* 使用:如果不解构,需要调this.state */}
            <p>{this.state.counter
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值