React 应用 Effect Hook 函数式中操作生命周期

这篇具有很好参考价值的文章主要介绍了React 应用 Effect Hook 函数式中操作生命周期。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

React Hook入门小案例 在函数式组件中使用state响应式数据给大家演示了最简单的 Hook操作 那么 我们继续
首先 Hook官方介绍 他没有破坏性是完全可选的 百分比兼容 也就说 我们一起的 类 class的方式也完全可以用
只要 react 16,8以上就可以使用
Hook本身不会影响你的react的理解 恰恰相反 官方认为 他会让react理解更加容易
至于 Hook的修改动机在于 他认为当组件很多时 类的方式很不易理解
而且这是一种剪辑式的修改方式 比如 你的老项目 你之前的还是可以继续用class 新的用Hook管理函数式 他们之间不会发生冲突

然后 我们来说第二个 Effect Hook

好 那我们来开启代码 编写代码如下

import React from "react";
export default class AppRouter extends React.Component{
    constructor(props){
      super(props);
      this.state = {
        name: "小猫猫"
      }
    }

    componentDidMount = ()=>{
      document.title = this.state.name;
    }

    render(){
        return (
            <div>
                Hello World
            </div>
        )
    }
}

我们在界面写了很普通的案例 Hello World
然后在componentDidMount 页面挂载完毕的生命周期中执行了 将页面title内容改为this.state.name的指令
然后运行结果如下
React 应用 Effect Hook 函数式中操作生命周期
没有什么问题

我们可以在页面内容中加这样一个按钮

<button onClick= { ()=>{ this.setState({ name: "大猫猫" }) } }>更改title</button>

React 应用 Effect Hook 函数式中操作生命周期
点击后改变name的值
我们运行代码 会发现 点击之后 title的值并不会随着点击而变化
React 应用 Effect Hook 函数式中操作生命周期
但是其实我们心里清楚这肯定是变化了的

那么 我们就可以去写

componentDidUpdate() {
    document.title = this.state.name;
}

React 应用 Effect Hook 函数式中操作生命周期

利用 componentDidUpdate 监听数据变化 当响应式数据变化重新渲染一次title的内容
React 应用 Effect Hook 函数式中操作生命周期
这次点击后 title的内容也就变化了

其实这样写多少还是有点捞的 我们可以用新特性去实现
我们将代码改成这样

import React,{ useState,useEffect } from "react"

const MyComponent = () => {
  const [name,setName] = useState("小猫猫");

  /*
    useEffect相当于三个生命周期函数
    分别是
        componentDidMount //元素挂载完成
        componentDidUpdate //响应式数据更改
        componentWillUnmount  //组件销毁前
  */
  useEffect(() => {
    document.title = name;
  })

  return (
    <div>
      Hello World
      <button onClick={ ()=> { setName("大猫猫")} }>更改title</button>
    </div>
  );
};

export default MyComponent;

运行项目
React 应用 Effect Hook 函数式中操作生命周期
显然开始渲染的没有什么问题

然后 我们点击按钮
React 应用 Effect Hook 函数式中操作生命周期
内容也是改变成功

这里正如我们注释写的那样 useEffect相当于三个生命之前函数
componentDidMount //元素挂载完成
componentDidUpdate //响应式数据更改
componentWillUnmount //组件销毁前

官方不会去动你的蛋糕
它也可以单独去相当于某一个生命周期函数

我们将 useEffect 上面的代码改成

useEffect(() => {
  document.title = name;
  // eslint-disable-next-line react-hooks/exhaustive-deps
},[]);

后面加个空数组
这样 他就只相当于 componentDidMount
运行项目
React 应用 Effect Hook 函数式中操作生命周期
第一次渲染上去了
然后我们点击按钮
React 应用 Effect Hook 函数式中操作生命周期
就不会变化了 因为他目前只有componentDidMount的作用

如果你在最后面加个 return
React 应用 Effect Hook 函数式中操作生命周期
那么 这个 return中的内容 就是组件销毁后会执行的componentWillUnmount逻辑函数文章来源地址https://www.toymoban.com/news/detail-489241.html

到了这里,关于React 应用 Effect Hook 函数式中操作生命周期的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • React - 你知道useffect函数内如何模拟生命周期吗

    难度级别:中级及以上                                 提问概率:65%  很多前端开发人员习惯了Vue或者React的组件式开发,熟知组件的周期过程包含初始化、挂载完成、修改和卸载等阶段。但是当使用Hooks做业务开发的时候,看见一个个useEffect函数,却显得有

    2024年04月10日
    浏览(50)
  • 微信小程序——生命周期,生命周期的分类,页面生命周期,生命周期函数的分类,应用的生命周期函数,页面的生命周期函数,wxs脚本概述

    生命周期( Life Cycle )是指一个对象从创建-运行-销毁的整个阶段,强调的是一个时间段。 例如: .张三出生,表示这个人生命周期的开始 .张三离世,表示这个人生命周期的结束 .中间张三的一生,就是张三的生命周期 我们可以把每个小程序运行的过程,也概括为生命周

    2024年02月01日
    浏览(63)
  • react中使用shouldComponentUpdate生命周期函数调用setState引起的无限循环的错误

    在 React 组件中,当在 componentWillUpdate 或 componentDidUpdate 生命周期方法中调用 setState 时,会触发无限循环,导致超过最大更新深度。 在React组件中 ,我们使用componentWillUpdate 或 componentDidUpdate 生命周期方法中调用 setState 方法,但是调用seState会导致组件重新渲染 ,那么这个生命

    2024年02月12日
    浏览(39)
  • 面试中问:React中函数组件和class组件的区别,hooks模拟生命周期

    React 的函数组件和类组件在很多方面都相似,但它们也有一些关键的差异。以下是这两种组件之间的主要区别: 定义方式 : 函数组件 : 是简单的 JavaScript 函数,接受 props 为参数,并返回 React 元素。 类组件 : 是 ES6 的类,继承的时候要用到 extends React.Component,至少包含一个名

    2024年02月11日
    浏览(45)
  • Vue2 的@hook 、 hook: 与生命周期

    优点:简单易上手 缺点:此种方法子组件必须是自己编写的组件,若引用第三方库这种方式则不可行 官方文档并没有太多相关解释,只在处理边界情况 #程序化的事件侦听器— Vue.js (vuejs.org)里有出现。 子组件无需相关处理就能实现侦听,这块的实现原理可以从源码里探究部

    2024年02月05日
    浏览(47)
  • 【React】: React的生命周期

    生命周期的每个阶段总是伴随着一些方法的调用,这些方法就是生命周期的钩子函数 钩子函数的作用:为开发人员在不同操作阶段提供了十几 只有 类组件 才有生命周期   生命周期的图片:  同时有:  编写以下代码,从而验证constructor,render,componentDidMount的顺序: 在开发者

    2024年02月08日
    浏览(43)
  • 【React学习】React组件生命周期

    在 React 中,组件的生命周期是指组件从被创建到被销毁的整个过程。React框架提供了一系列生命周期方法,在不同的生命周期方法中,开发人员可以执行不同的操作,例如初始化状态、数据加载、渲染、更新等。一个组件的生命周期大致可以分为三个阶段,即组件挂载时,更

    2024年02月12日
    浏览(41)
  • react---生命周期

    目录 1.新旧生命周期对比 2.常用的3个钩子函数 3.生命周期(旧) 4.生命周期(新) React 中为我们提供了一些生命周期钩子函数,让我们能在 React 执行的重要阶段,在钩子函数中做一些事情。 1.新旧生命周期对比 新的生命周期 对于 旧的生命周期 ,废弃(即将废弃)了 三个

    2024年02月08日
    浏览(52)
  • React 生命周期新旧对比

    React16.4版本之后使用了新的生命周期,它使用了一些新的生命周期钩子(getDerivedStateFromProps、getSnapshotBeforeUpdate),并且即将废弃老版的3个生命周期钩子(componentWillMount、componentWillReceiveProps、componentWillUpdate)。 因为React 16引入了 Fiber机制 ,把 同步 的渲染流程进化为了 异步

    2024年02月11日
    浏览(44)
  • 浅谈React生命周期

    在React中,组件的生命周期是指组件从创建到销毁的整个过程中所经历的一系列阶段。React 16.3版本之前,组件的生命周期可以分为三个阶段:挂载阶段(Mounting)、更新阶段(Updating)和卸载阶段(Unmounting)。但是自React 16.3版本起,官方推出了新的生命周期方法,将原有的一

    2024年02月10日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包