React-Hook

1、无状态组件和有状态组件

  • 无状态组件(展示组件,函数式组件):就是一个函数没有state,没有生命周期,就是一个简单的视图函数,没有业务逻辑更纯粹的展示UI。
  • 有状态组件(容器组件,类组件):标准使用模式,此函数继承了React里面的组件和props,可以使用生命周期可以在里面写业务逻辑,可以在里面做任何事情

2、State Hook

       Hook 是一些可以让你在函数组件里“钩入” React state 及生命周期等特性的函数。Hook 不能在 class 组件中使用

useState:参数表示state变量的初始值, 类似于this.state = {count: 0}(useState 会返回一对值:当前状态和一个让你更新它的函数,可以在事件处理函数中或其他一些地方调用这个函数)

setCount:用于改变state变量的函数,可以在任意地方调用,类似于this.setState

import React, { useState } from 'react';
function HookApp() {
    // 声明一个新的叫做 “count” 的 state 变量,初始值为0
    const [count, setCount] = useState(0);
    return (
        <div>
            <!--读取state-->
            <p>{`you have been click ${count} times`}</p>
            <button onClick={() => {
                <!--更新state-->
                setCount(count + 1)
            }}>点击增加</button>
        </div>
    )
}
export default HookApp;

3、Effect Hook

Effect Hook 可以让我们在函数组件中执行副作用操作

当我们在 React 更新 DOM 之后想运行一些额外的代码,比如发送网络请求、手动变更 DOM,记录日志可以使用Effect Hook,可以把 useEffect看做 componentDidMount,componentDidUpdate 的结合

class组件实现副作用:

componentDidMount() {
    document.title = `you have been click ${this.state.count} times`;
}
componentDidUpdate() {
    document.title = `you have been click ${this.state.count} times`;
}
<button onClick={() => {
    this.setState({ count: this.state.count + 1 })
}}>点击按钮增加</button>

函数组件实现副作用:

useEffect(() => {
    document.title = `you have been click ${count} times`;
})
<button onClick={() => {
     setCount(count + 1)
}}>点击增加</button>

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值