React 中 useEffect

React 中 useEffect 是副作用函數,副作用函數通常是處理外圍系統交互的邏輯。那么 useEffect 是怎處理的呢?React 組件都是純函數,需要將副作用的邏輯通過副作用函數抽離出去,也就是副作用函數是不影響函數組件的返回值的。例如,我們要獲取用戶列表,副作用函數去服務器獲取數據,數據獲取成功之后,更新 State 并發起渲染,他對函數式組件沒有影響。根據以上邏輯,對應 React Render/Commit 兩階段,副作用函數函數要在 commit 式在去執行。

我們看一個簡單的 useEffect 例子,在 React 中是如何處理的。

function App() {const [name, setName] = useState("123")const input = useRef()useEffect(()=>{console.log(name)}, [name])const handleClick = ()=>{setName(input.current.value)}return (<div className="App"><header className="App-header"><img src={logo} className="App-logo" alt="logo" /><p>Edit <code>src/App.js</code> and save to reload.</p><input ref={input}></input><button onClick={handleClick}>abcd</button><aclassName="App-link"href="https://reactjs.org"target="_blank"rel="noopener noreferrer">Learn React</a></header></div>);
}

跟蹤 React 代碼,我們可以到 React 在 commit 階段執行 effect。
在這里插入圖片描述
進入 scheduleCallback 并創建調度任務
在這里插入圖片描述
在這里插入圖片描述
commit 結束后,workloop 執行 effect。
在這里插入圖片描述

總結

useEffect 將函數式組件副作用于組件邏輯進行分離,commit 階段結束后進行執行。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/37274.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/37274.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/37274.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

vue中如何使用echarts和echarts-gl實現三維折線圖

一、vue中使用三維折線圖 效果圖&#xff1a; 二、使用步驟 1.引入庫 安裝echarts 在package.json文件中添加 "dependencies": {"echarts": "^5.1.2""echarts-gl": "^1.1.1",// "echarts-gl": "^2.0.8…

5G超寬,遠程診療帶來優質就醫體驗

上篇&#xff08;5G與4G的區別-CSDN博客&#xff09;講了4G與5G的區別&#xff0c;大家可以看到5G 具備高帶寬、低時延的特性&#xff0c;可以廣泛應用在各種物聯網場景下。 今天和大家簡單聊聊5G遠程診療。 遠程診療是一種利用信息通信技術為患者提供醫療服務的方式。它允許…

掌握PoE交換機的潛力:全面的以太網供電連接手冊

在數字化日益成為我們生活和工作核心的今天&#xff0c;一個穩固且效率高的網絡基礎架構對于個人和企業來說是不可或缺的。PoE&#xff08;以太網供電&#xff09;交換機作為一種創新技術&#xff0c;通過單一的網絡線纜同時傳遞數據和電源&#xff0c;對于增強網絡的性能起著關…

5. Spring IoCDI ★ ?

5. Spring IoC&DI 1. IoC & DI ??1.1 Spring 是什么&#xff1f;★ &#xff08;Spring 是包含了眾多?具?法的 IoC 容器&#xff09;1.1.1 什么是容器&#xff1f;1.1.2 什么是 IoC&#xff1f;★ &#xff08;IoC: Inversion of Control (控制反轉)&#xff09;總…

都江堰操作系統(DJYOS)和安卓操作系統(Android)的區別

- 開發團隊&#xff1a;都江堰操作系統由深圳市秦簡計算機系統有限公司開發和運營&#xff1b;而安卓由谷歌及其他公司帶領的開放手機聯盟開發。 - 開源情況&#xff1a;都江堰操作系統是開源操作系統&#xff0c;采取了類BSD許可證&#xff1b;安卓是基于Linux的開放源代碼軟…

AGI大模型的門檻是什么?怎么學

AGI&#xff08;Artificial General Intelligence&#xff0c;通用人工智能&#xff09;大模型&#xff0c;即具備類似人類智能的、能夠理解、學習、應用知識和技能并解決各種復雜問題的通用型人工智能模型&#xff0c;目前仍然是人工智能研究的前沿領域&#xff0c;具有以下門…

深度學習 --- stanford cs231學習筆記七(訓練神經網絡之梯度下降優化器)

5&#xff0c;梯度下降優化器 5&#xff0c;1 梯度下降在深度學習中的作用 在深度學習中&#xff0c;權重W的值是否合理是由損失函數L來判斷的。L越小&#xff0c;表示W的設置越happy。L越大&#xff0c;表示W的值越unhappy。 為了讓L越來越小&#xff0c;常用的方法是梯度下降…

centos7安裝zabbix6.4-mysql8

CentOS 7 安裝 Zabbix 6.4 步驟 關閉防火墻和服務 systemctl stop firewalld.service setenforce 0安裝 MySQL 配置 MySQL 源 wget https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm yum -y install mysql80-community-release-el7-5.noarch.rpm安裝 M…

句法分析概述

第1關&#xff1a;句法分析概述 任務描述 本關任務&#xff1a;通過對句法分析基本概念的學習&#xff0c;完成相應的選擇題。 相關知識 為了完成本關任務&#xff0c;你需要掌握&#xff1a; 句法分析的基礎概念&#xff1b; 句法分析的數據集和評測方法。 句法分析簡介…

應用及安全

目錄 一、PAM 安全認證及配置 1.1配置 su 命令的認證 1.2PAM 配置文件結構二、賬號和密碼安全管理 2.1賬號管理 2.2系統賬號清理 2.3密碼安全控制 2.4密碼重設示例 2.5參考命令三、命令歷史限制 3.1設置命令歷史記錄…

【問chatgpt】

這采用的是什么腳手架初始化的&#xff1f;這樣問詢chatgpt 從文件結構來看&#xff0c;這個項目很可能是使用 Express 框架初始化的。這些文件夾和命名約定常見于 Express 項目結構&#xff0c;特別是&#xff1a; controllers: 控制器文件夾&#xff0c;通常用于處理請求邏…

同城小商城貨到付款系統源碼小程序

&#xff1a;便捷購物新選擇 &#x1f680; 一、快速便捷&#xff0c;同城直達 在這個快節奏的時代&#xff0c;時間就是金錢。你是否曾因為等待快遞而焦慮不安&#xff1f;現在&#xff0c;有了“同城商城貨到付款小程序”&#xff0c;這一切都變得不再是問題。它專注于同城…

<商務世界>《79 微課堂 <客戶是核心:2 客戶溝通的技巧《揚長避短進行溝通》(全文原創首發)>》

1 說明 符合表示★關鍵信息▲必要信息●一般信息 2 規則 等級信息★1、無準備&#xff0c;不溝通。▲2、做最準備充分&#xff0c;準備不設上限★3、掌握自己的節奏&#xff0c;不在他人節參中被動●4、準備充分、心態平穩、揚長避短。●5、溝通就是對消息的處理。發送、接收…

谷歌如何進行失效鏈接建設?

失效鏈接建設是一種高效的外鏈建設策略&#xff0c;通過發現并利用失效鏈接來提升自己網站的SEO。以下是詳細的步驟&#xff1a; 尋找失效頁面&#xff1a;你需要使用SEO工具&#xff0c;如Ahrefs&#xff0c;來查找與你的網站內容相關的失效頁面。這些頁面可能是競爭對手的失…

傳神社區|數據集合集第4期|中文NLP數據集合集

自從ChatGPT等大型語言模型&#xff08;Large Language Model, LLM&#xff09;出現以來&#xff0c;其類通用人工智能&#xff08;AGI&#xff09;能力引發了自然語言處理&#xff08;NLP&#xff09;領域的新一輪研究和應用浪潮。尤其是ChatGLM、LLaMA等普通開發者都能運行的…

基于深度學習的相機內參標定

基于深度學習的相機內參標定 相機內參標定&#xff08;Camera Intrinsic Calibration&#xff09;是計算機視覺中的關鍵步驟&#xff0c;用于確定相機的內部參數&#xff08;如焦距、主點位置、畸變系數等&#xff09;。傳統的標定方法依賴于已知尺寸的標定板&#xff0c;通常…

一文弄懂線性回歸模型

1、引言 今天&#xff0c;我們將深入探討機器學習中的三個關鍵概念&#xff1a;線性回歸、代價函數和梯度下降。這些概念構成了許多機器學習算法的基礎。起初&#xff0c;我決定不寫一篇關于這些主題的文章&#xff0c;因為它們已經被廣泛涉及。不過&#xff0c;我改變了主意&…

[圖解]SysML和EA建模住宅安全系統-02-現有運營領域-塊定義圖

1 00:00:00,840 --> 00:00:02,440 首先我們來看畫在哪里 2 00:00:02,570 --> 00:00:08,310 你看&#xff0c;這是圖的類型&#xff0c;圖里面內容 3 00:00:08,320 --> 00:00:10,780 這是元素類型 4 00:00:10,790 --> 00:00:14,900 這是位置&#xff0c;哪個包 …

Halcon 文本文件操作,形態學

一文件的讀寫 *******************************************************向文本文件寫入字符串內容*************************************************************read_image (Image, fabrik)threshold (Image, Region, 0, 120)area_center (Region, Area, Row, Column)open_…

【前端面試題】vue2.0與vue3.0不同處大全

Vue 3.0與Vue 2.0在細節上存在多個顯著的不同之處&#xff0c;以下是對這些區別的詳細歸納和解釋&#xff1a; 性能提升&#xff1a; Vue 3.0的性能相比Vue 2.x快了1.2至2倍。這主要得益于內部對虛擬DOM的完全重寫&#xff0c;mounting和patching的提速&#xff0c;以及基于Pr…