前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >react hook 生命周期

react hook 生命周期

作者头像
阿超
发布2022-08-21 12:57:19
2560
发布2022-08-21 12:57:19
举报
文章被收录于专栏:快乐阿超快乐阿超

官方文档:https://zh-hans.reactjs.org/docs/hooks-reference.html#conditionally-firing-an-effect

直接上代码:

代码语言:javascript
复制
'use strict';

function LikeButton() {
    const [liked, setLiked] = React.useState(false)
    const [count, setCount] = React.useState(0)

    React.useEffect(() => {
        // 只执行一次
        setInterval(() => setCount(state => ++state), 1000)
    }, [])

    return (
        <button onClick={() => setLiked(!liked)} >
            {liked ? <ButtonText count={count} /> : '不喜欢'}
        </button>
    );
}
function ButtonText({ count }) {

    React.useEffect(() => {
        // 只执行一次
        console.log`我来了`
        // 组件销毁时执行一次
        return () => console.log`我溜了`
    }, [])

    React.useEffect(() => {
        // 当props.count发生变更时触发
        console.log`${{ count }}`
    }, [count])

    React.useEffect(() => {
        // 有变更时触发
        console.log`风吹草动`
    })


    return (
        <div>{count}</div>
    )
}
ReactDOM.render(<LikeButton />, document.querySelector('#like_button_container'))

可参考官网effect一节

效果:

初始化

image-20220406194145903
image-20220406194145903

点击按钮

image-20220406194157841
image-20220406194157841

再次点击,销毁

image-20220406194214207
image-20220406194214207
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-04-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档