什么网站发布任务有人做贵阳网站建设钟鼎网络

bicheng/2026/1/23 1:56:24/文章来源:
什么网站发布任务有人做,贵阳网站建设钟鼎网络,开发网站公司的简介,做音乐网站要求一、类组件和函数式组件的对比 Hook 的特性#xff1a;在编写class 的情况下#xff0c;使用state 以及其他React 特性#xff08;比如生命周期#xff09; 类组件相比于函数式组件的优势#xff1a; 类组件可以定义自己的state#xff0c;用来保存组件自己内部的状态…一、类组件和函数式组件的对比 Hook 的特性在编写class 的情况下使用state 以及其他React 特性比如生命周期 类组件相比于函数式组件的优势 类组件可以定义自己的state用来保存组件自己内部的状态。函数式组件不可以因为函数每次调用都会产生新的临时变量类组件有自己的生命周期可以在对应的生命周期中完成自己的逻辑。比如在componentDidMount 中发送网络请求并且该声明周期函数只会执行一次。函数式组件在函数中发送网络请求意味着每次重新渲染都会重新发送一次网络请求。类组件可以在状态改变时只会重新执行render 函数以及重新调用的声明周期函数componentDidUpdate 等函数式组件在重新渲染时整个函数都会被执行 二、Hooks 的使用 1、useState 在函数退出后函数中定义的变量会“消失” 而state 中的变量会被React 保留useState 接收唯一一个参数在第一次组件被调用时使用并作为初始值如果没有传递参数那么初始值为undefineduseState 的返回值是一个数组可以通过解构获取state 和setState import { memo, useState } from react function CounterHook(props) {const [ counter, setCounter ] useState(0)function decrement() {setCounter(counter - 1)}return (div h2当前计数: {counter}/h2button onClick{esetCount(count1)}1/buttonbutton onClick{decrement}-1/button/div) } export default memo(CounterHook) 2、useEffect a、useEffect 的基本使用 useEffect 传入的回调函数会在组件被渲染完成后会自动执行effect 在每次渲染的时候都会执行 // 在组件第一次渲染、组件更新时都会执行 useEffect(() {// 当前传入的回调函数会在组件被渲染完成后会自动执行// 网络请求/DOM操作/事件监听 }) b、useEffect 传入的回调函数的返回值 清除操作 useEffect 传入的回调函数可以有一个返回值这个返回值是另外一个回调函数。这是effect 可选的清除机制每个effect 都可以返回一个清除函数这样就可以将添加和移除订阅的逻辑放在一起react 会在组件更新和卸载的时候执行清除操作 useEffect(() {console.log()// 回调函数回调函数 组件被重新渲染或者组件卸载的时候执行return () {console.log()} }) c、一个函数式组件可以有多个useEffect useEffect(() {console.log(修改state) }) useEffect(() {console.log(监听redux 中的数据)return () {// 取消redux 中数据的监听} }) d、useEffect 的两个参数effect 的性能优化 参数一执行的回调函数参数二该useEffect 在哪些state 发生变化时才重新执行受谁的影响 e、useEffect 的第二个参数是空数组时 当useEffect 的第二个参数是空数组时只在组件第一次渲染时执行类似于类组件的 componentDidMount如果useEffect 的第一个参数回调函数有返回值时只会在组件卸载时执行类似于类组件的componentWillUnmount useEffect(() {console.log(在组件第一次渲染时执行一次)return () {console.log(在组件卸载时执行一次)} }, []) f、useEffect 的第二个参数不是空数组时 useEffect 的第二个参数是数组并且数组中有依赖的值useEffect 会在组件第一次渲染时执行一次并且当依赖的值发生变化时useEffect 会自动执行该useEffect 在哪些state 发生变化时才重新执行受谁的影响 useEffect(() {console.log(count 发生了变化) }, [count]) 3、useContext 组件中使用共享的Context 有两种方式 类组件可以通过类名contextType MyContext 方式在类中获取context多个Context 或者在函数式组件中通过MyContext.Consumer 方式共享context 注意事项 当组件上层最近的MyContext.Provider 更新时该Hook 会触发重新渲染并使用最新传递给MyContext provider 的context value 值 // src/context/index.js import { createContext } from react const UserContext createContext() const ThemeContext createContext() export {UserContext,ThemeCoontext }// src/index.js import { UserContext, ThemeContext } from /context/index.js const root ReactDOM.createRoot(document.getElementById(root)); root.render(UserContext.Provider value{{ name: why, age: 18 }}ThemeContext.Provider value{{ color: red, size: 30 }}App//ThemeContext.Provider/UserContext.Provider );// src/App.jsx import { memo, useContext } from react import { UserContext, ThemeContext } from /context/index.js const App memo(() {// 使用contextconst user useContext(UserContext)const theme useContext(ThemeContext)return (divh2{ user.name } - { user.age }/h2div style{{ color: theme.color, fontSize: theme.size }}主题/div/div ) }) export default App 4、useReducer了解 useReducer 是useState 的一种替代方案在某些情况下如果state 的处理逻辑比较复杂时可以通过useReducer 来对其进行拆分或者这次修改的state 需要依赖之前的state 时也可以使用 import { useReducer } from react function reducer(state, action) {switch(action.type) {case incrementreturn { ...state, counter: state.counter 1 }case decrementreturn { ...state, counter: state.counter - 1 }case add_numberreturn { ...state, counter: state.counter action.num }case sub_numberreturn { ...state, counter: state.counter - action.num }} } const App memo(() {const [state,dispatch] useReducer(reducer, {counter: 0})return (divh2{state.counter}/h2button onClick{e dispatch({ type: increment })}1/buttonbutton onClick{e dispatch({ type: decrement })}-1/buttonbutton onClick{e dispatch({ type: add_number, num: 5 })}5/buttonbutton onClick{e dispatch({ type: sub_number, num: 5 })}-5/button/div) }) 5、useCallback性能优化 useCallback 性能优化当需要将一个函数传递给子组件时最好使用useCallback 进行优化将优化之后的函数传递给子组件在依赖不变的情况下多次定义的时候返回的值是相同的 当修改count 时会影响子组件HYHome 重新渲染当修改message 时子组件不重新渲染 import { useCallback, useRef } from react const HYHome memo(function(props) {// props 中的属性发生改变时组件本身就会被重新渲染const { increment } propsconsole.log(HYHome 被渲染)return (divbutton onClick{increment}increment 1/button/div) }) const App memo(function() {const [count, setCount] useState(0)const [message, setMessage] useState(hello)// 1. 闭包陷阱const increment useCallback(function foo() {console.log(increment)setCount(count 1)}, [count])// 2. 使用useRef 实现const countRef useRef()countRef.current countconst increment useCallback(function foo() {console.log(inncrement)setCount(countRef.current 1)}, [])// 3. 普通的函数const increment () {setCount(count 1)}return (divh2计数: {count}/h2button onClick{increment}1/buttonHYHome increment{increment}/h2{ message }/h2button onCick{e setMessage(Math.random())}修改message/button/div) }) 6、useMemo

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/87664.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站建设石家庄市专业网络营销外包

文章目录 一. 程序三大执行流程二. 分支结构1.单分支结构(if)2.双分支结构(if..else)3.多分支结构(if..elif..else) 二,缩进(tab键)三,循环结构1.while循环2.for循环①遍历字典 五.break,continue和pass语句1.break,continue2.pass Python基础学习(1)基本…

如何制作公司网站网站怎样做百度推广计划

本系列为作者学习UnityShader入门精要而作的笔记,内容将包括: 书本中句子照抄 个人批注项目源码一堆新手会犯的错误潜在的太监断更,有始无终 我的GitHub仓库 总之适用于同样开始学习Shader的同学们进行有取舍的参考。 文章目录 建立一个基…

手机网站存储登录信息百度搜索名字排名优化

在今年 3 月,隐私公链 Partisia Blockchain 迎来了重要的进展,该生态通证 $MPC 上线了交易所,目前 $MPC 通证可以在 Kucoin、Gate、BitMart、Bitfinex、Bitture 等平台交易,并将在不久后上线 MEXC 平台。 ​ 在上个月上线市场至今…

做营销网站 如何让商家入驻ps做网站界面

一.概念介绍 1.1 gitlab-ci && 自动化部署工具的运行机制 以gitlab-ci为例: (1) 通过在项目根目录下配置.gitlab-ci.yml文件,可以控制ci流程的不同阶段,例如install/检查/编译/部署服务器。gitlab平台会扫描.gitlab-ci.yml文件&…

网站建设 三乐牙科医院网站源码

[单片机课程设计必看] 单片机设计报告常用描述 硬件设计 AT89C51最小系统 AT89C51是美国ATMEL公司生产的低电压,高性能CMOS16位单片机,片内含4k bytes的可反复擦写的只读程序存储器和128 bytes的随机存取数据存储器,期间采用ATMEL公司的高…

营销型网站 案例phpcms v9网站上传

目录 常见的环境变量 HOME PWD SHELL HISTSIZE 环境变量相关的指令 echo&env export unset 本地变量 环境变量整体理解 程序现象_代码查看环境变量 整体理解 环境变量表 环境变量表的传递 环境变量表的查看 测试验证 少说废话🆗 每个用户…

html5 制作手机网站设计干货很多的网站

Leangoo领歌是一款永久免费的专业的敏捷开发管理工具,提供端到端敏捷研发管理解决方案,涵盖敏捷需求管理、任务协同、进展跟踪、统计度量等。 Leangoo领歌上手快、实施成本低,可帮助企业快速落地敏捷,提质增效、缩短周期、加速创新…

嘉兴做网站seo的南头做网站公司

全网可达,R5路由表没有其他路由器的路由条目 注:每个路由器都添加了自己的环回,如R1就是1.1.1.1 R1可以分别ping通与R2,R3,R4之间的隧道 R1路由表上有所有路由器环回的路由条目 R5路由表上没有其他路由器的路由条目 实现代码: 首先将各个接口IP配好 边上3个路由器:[R6][R7][R…

哪儿提供邯郸做网站wordpress安装选择协议

一、多目标优化算法简介 (1)非支配排序的蜣螂优化算法NSDBO 多目标应用:基于非支配排序的蜣螂优化算法NSDBO求解微电网多目标优化调度(MATLAB)-CSDN博客 (2)NSGA3 NSGA-III求解微电网多目标…

网站dns错误网页搜索优化seo

闲话 最开始知道这本书是在校内论坛上,有同学通过这本书里的项目拿到大厂的ssp offer,于是就从网上订购了这本较为大部头的书,想要在简历上添加一个足够底层并且有意思的项目经历,从而帮助自己在秋招时赢得一个好的offer。 第一遍…

华蓥网站建设抖音seo公司帝搜平台

机械行业是我国重要的工业制造行业之一,相关企业在发展中往往需要用到ERP、PDM、PLM等系统来对产品信息进行管理,其中便涉及到大量文档和图纸等重要数据。然而随着业务的快速发展和数字化转型,机械行业也面临着如数据泄露、外来袭击攻击、内部…

获取网站全站代码津南网站建设

思路:利用bfs的思想 首先利用bfs遍历值为2的橘子(遍历时1和2都可以走)结束后如果存在某个橘子未被访问过且值为1则返回-1 再利用bfs遍历值为2的橘子 每遍历一次 时间加1 注意不要立即将map的值变为2,可以通过一个缓存数组临时存放…

建德做网站e福州便民服务自助终端

2019独角兽企业重金招聘Python工程师标准>>> 技术要点&#xff1a; 一个覆盖整个屏幕的浅灰色背景的div,一个包含内容的的div, 代码如下&#xff1a; <div id"financeTip" style""><div class"financeTipBg" style"&qu…

上饶网站建设哪家好织梦分类信息做的网站

在android 项目开发中&#xff0c;遇到一个比较难以解决的问题&#xff1a;在dialog已经显示的情况下&#xff0c;用户去手动切换主题&#xff1a;由白天模式切换到黑夜模式 众所周知&#xff0c;在主题切换时&#xff0c;有些切换方式&#xff08;代码控制&#xff09;会走重…

济南外贸网站建设wordpress的论坛主题

2023年中职"网络安全"—Linux系统渗透提权② Linux操作系统渗透测试任务环境说明&#xff1a;1. 使用渗透机对服务器信息收集&#xff0c;并将服务器中SSH服务端口号作为flag提交&#xff1b;2. 使用渗透机对服务器信息收集&#xff0c;并将服务器中主机名称作为flag…

宝安网站制作昆明网站建设搭建

我有一个这样一个对象&#xff0c;getData, 但是我不想要每一项的id&#xff0c;那怎么去删除呢(使用delete)? getData.map((item) >{delete item["id"];});console.log(getData);转载于:https://www.cnblogs.com/mmykdbc/p/8386407.html

建设农产品网站总结ppt模板昆明网签备案查询

php去掉字符串最后三个字符<?phpheader (content-type:text/html;charsetutf-8); $str programming;echo "原字符串&#xff1a;{$str}";//定义一个2021-03-11 20:32:46php $_get报错的解决办法&#xff1a;当我们直接访问POST&GET页面时由于并没有传递任何…

电子产品网站建设分析的摘要酒店网站设计模板

面向对象 概念 现实生活&#xff1a; 类&#xff1a;抽象的概念&#xff0c;把具有相同特征和操作的事物归为一类 先有实体&#xff0c;再有类的概念 代码世界&#xff1a; 类&#xff1a;抽象的概念&#xff0c;把具有相同属性和方法的对象归为一类 编写顺序&#xff1a;先有…

做动态影集的网站天津建设厅 注册中心网站首页

二元运算及其性质 二元运算中的特殊元 半群和独异点 代数系统的同态与同构 下确界是最大的下界&#xff0c;而在4、5、6三个下界里面&#xff0c;4和5都比6大。可4和5之间没办法分出大小&#xff0c;所以这个哈斯图没有下确界

网站数据库连接不上的常见问题哪家公司做网站不错

随着互联网技术的不断发展&#xff0c;Java作为后端开发的主流语言之一&#xff0c;其并发编程和多线程机制得到了越来越多的关注。面试中&#xff0c;关于Java内存模型、多线程以及并发相关的知识点往往是面试官关注的重点。本文将为大家解析三道综合面试题&#xff0c;涵盖Ja…