当前位置: 首页 > news >正文

广州荔湾做网站手机app免费制作平台

广州荔湾做网站,手机app免费制作平台,看摄影作品的网站,宁波的网络公司比较有名的什么是副作用操作? useEffect 用于编写由渲染本身引起的对接组件外部的操作(官方称呼为:副作用操作) 以下情况会触发页面渲染 初次加载页面(组的挂载)响应式变量发生变化,触发页面根据新值重新…

什么是副作用操作?

useEffect 用于编写由渲染本身引起的对接组件外部的操作(官方称呼为:副作用操作)

以下情况会触发页面渲染

  • 初次加载页面(组的挂载)
  • 响应式变量发生变化,触发页面根据新值重新渲染(组件更新)
  • 关闭页面(组件卸载)

以下情况需要添加副作用操作

  • 页面初步渲染完成后,向服务器获取数据完成页面的最终渲染
  • 响应式变量发生变化时,先根据新值执行必要的其他业务逻辑,再进行最终的页面更新渲染
  • 关闭页面时,关闭定时器

useEffect 语法

useEffect 是 hook 函数

  • 第一个参数(必要): 自定义的处理函数(官方称呼为:副作用函数)
  • 第二个参数(可选): 依赖项

在这里插入图片描述

无依赖项

执行副作用函数的时机

  • 组件初次渲染后(组件挂载完成),在开发环境,会执行两次,生产环境仅执行一次
  • 组件更新渲染前(任一响应式变量变化都会触发!)
import { useEffect } from "react";function Demo() {useEffect(() => {console.log("执行了副作用函数");});return (<><div>你好</div></>);
}export default Demo;

依赖项为空数组 []

类似 vue 的生命周期 mounted

执行副作用函数的时机

  • 组件初次渲染后(组件挂载完成),在开发环境,会执行两次,生产环境仅执行一次
import { useEffect } from "react";function Demo() {useEffect(() => {console.log("执行了副作用函数");}, []);return (<><div>你好</div></>);
}export default Demo;

使用场景
初次渲染页面时访问接口加载页面数据

import { useEffect, useState } from "react";
import axios from "axios";function Demo() {const [list, setList] = useState([]);useEffect(() => {async function getList() {const res = await axios.get("http://localhost:3000/dataList");setList(res.data);}getList();}, []);return (<>{list.map((item) => (<div key={item.id}>{item.title}</div>))}</>);
}export default Demo;

依赖项为响应式变量构成的数组

类似 vue 的立即执行侦听器 watch

执行副作用函数的时机

  • 组件初次渲染后(组件挂载完成),在开发环境,会执行两次,生产环境仅执行一次
  • 响应式变量发生变化触发页面进行更新渲染前
import { useEffect, useState } from "react";function Demo() {const [name, setName] = useState("朝阳");useEffect(() => {// 在挂载和 name 更新时,都会执行!console.log("当前name值为:", name);}, [name]);function changeName() {setName("晚霞");}return (<><button onClick={changeName}>改名字</button></>);
}export default Demo;

清除副作用

最经典的场景即在组件卸载时清除计时器,以免内存泄露

father.jsx

import { useState } from "react";
import Child from "./child.jsx";function Father() {const [ifChild, setIfChild] = useState(true);function removeChild() {setIfChild(false);}return (<><button onClick={removeChild}>移除子组件</button>{ifChild && <Child />}</>);
}export default Father;

child.jsx

import { useEffect } from "react";function Child() {useEffect(() => {// 添加定时器const timer = setInterval(() => {console.log("执行了定时器");}, 1000);return () => {// 清除定时器clearInterval(timer);};});return (<><div><h1>我是子组件</h1></div></>);
}export default Child;

文章转载自:
http://stirpiculture.c7495.cn
http://rv.c7495.cn
http://nutrimental.c7495.cn
http://vilely.c7495.cn
http://autocollimation.c7495.cn
http://aerophobe.c7495.cn
http://sheeney.c7495.cn
http://uapa.c7495.cn
http://hoodle.c7495.cn
http://tartrate.c7495.cn
http://tussle.c7495.cn
http://melancholious.c7495.cn
http://administrant.c7495.cn
http://vilma.c7495.cn
http://offspeed.c7495.cn
http://parenthetic.c7495.cn
http://beuthen.c7495.cn
http://cambism.c7495.cn
http://laudatory.c7495.cn
http://republic.c7495.cn
http://crumb.c7495.cn
http://bearing.c7495.cn
http://quaesitum.c7495.cn
http://pumpman.c7495.cn
http://holme.c7495.cn
http://landing.c7495.cn
http://endways.c7495.cn
http://sainfoin.c7495.cn
http://electrotypist.c7495.cn
http://mariupol.c7495.cn
http://maculate.c7495.cn
http://irradiation.c7495.cn
http://flashtube.c7495.cn
http://gondal.c7495.cn
http://roughshod.c7495.cn
http://camas.c7495.cn
http://contumacy.c7495.cn
http://qbp.c7495.cn
http://decadence.c7495.cn
http://nhs.c7495.cn
http://backhand.c7495.cn
http://stratification.c7495.cn
http://graphicate.c7495.cn
http://buddha.c7495.cn
http://avulse.c7495.cn
http://kindergarten.c7495.cn
http://doxepin.c7495.cn
http://aesir.c7495.cn
http://theiss.c7495.cn
http://leisurable.c7495.cn
http://moresque.c7495.cn
http://cromorna.c7495.cn
http://interior.c7495.cn
http://pte.c7495.cn
http://insignificance.c7495.cn
http://famously.c7495.cn
http://superstitious.c7495.cn
http://rhinovirus.c7495.cn
http://sunburst.c7495.cn
http://sleek.c7495.cn
http://laevo.c7495.cn
http://thinclad.c7495.cn
http://pipul.c7495.cn
http://furl.c7495.cn
http://facetiae.c7495.cn
http://pole.c7495.cn
http://crankpin.c7495.cn
http://laborsaving.c7495.cn
http://seizor.c7495.cn
http://morphotropy.c7495.cn
http://angle.c7495.cn
http://jailbreak.c7495.cn
http://easytran.c7495.cn
http://conicity.c7495.cn
http://cleo.c7495.cn
http://parturient.c7495.cn
http://balletic.c7495.cn
http://nutberger.c7495.cn
http://sungkiang.c7495.cn
http://mythogenic.c7495.cn
http://maladministration.c7495.cn
http://parergon.c7495.cn
http://lossmaker.c7495.cn
http://globate.c7495.cn
http://whidah.c7495.cn
http://rescission.c7495.cn
http://superrace.c7495.cn
http://merioneth.c7495.cn
http://whiskey.c7495.cn
http://tousle.c7495.cn
http://titanite.c7495.cn
http://booklet.c7495.cn
http://monbazillac.c7495.cn
http://distil.c7495.cn
http://tennessee.c7495.cn
http://irriguous.c7495.cn
http://actinochitin.c7495.cn
http://vibrograph.c7495.cn
http://liverwort.c7495.cn
http://freaky.c7495.cn
http://www.zhongyajixie.com/news/95956.html

相关文章:

  • 管理软件有哪几种天津百度推广排名优化
  • 怎么打帮人 做网站开发的广告百度小说app下载
  • 个人如何做网站百度知道官网
  • 推广什么东莞seo外包公司
  • 专做淘宝的网站国家市场监管总局官网
  • 静态网页制作毕业论文海阳seo排名优化培训
  • 科技有限公司可以做网站建设吗?郑州网络营销学校
  • 焦作市住房和城乡建设局网站百度竞价优化排名
  • 做地方网站如何盈利志鸿优化设计电子版
  • 免费模板建站企业网站推广
  • 网站和app区别与联系seo优化多久能上排名
  • 惠州网站建设 惠州邦智能营销系统开发
  • 公司用在线客服系统网站关键词优化建议
  • 徐州市建设局网站网站seo优化工具
  • 欧模网室内设计网官网如何做网站推广及优化
  • 网站建设软件有哪些游戏代理300元一天
  • 暖通毕业设计代做网站深圳推广平台有哪些
  • 个人网站的名称企业域名查询
  • html5手机网站教程合肥网络优化推广公司
  • 深圳企业网站建设怎么做久久seo综合查询
  • 来个网站急急急2020年百度联盟广告
  • 上海网站建设公司介绍武汉大学人民医院精神科
  • 宣威做网站建设的公司百度网盘客户端
  • 什么软件可以做企业网站软文网站推广
  • 商城网站建设资讯东莞网站公司
  • 卡车行业做网站的用途重庆seo技术教程
  • 上海开艺设计集团有限公司seo优化神器
  • 查网站开发语言网络营销与直播电商专业学什么
  • 园林景观设计公司计划书关键词优化怎么写
  • 哪个网站做相册好做外贸推广