最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

useEffect中return函數(shù)的作用和執(zhí)行時機解讀

 更新時間:2024年01月04日 09:01:33   作者:淘淘是只狗  
這篇文章主要介紹了useEffect中return函數(shù)的作用和執(zhí)行時機,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

useEffect中return函數(shù)作用和執(zhí)行時機

官網(wǎng)的代碼

import React, { useState, useEffect } from 'react';

function FriendStatus(props) {
  const [isOnline, setIsOnline] = useState(null);

  useEffect(() => {
    function handleStatusChange(status) {
      setIsOnline(status.isOnline);
    }
    ChatAPI.subscribeToFriendStatus(props.friend.id, handleStatusChange);
    // Specify how to clean up after this effect:
    return function cleanup() {
      ChatAPI.unsubscribeFromFriendStatus(props.friend.id, handleStatusChange);
    };
  });

  if (isOnline === null) {
    return 'Loading...';
  }
  return isOnline ? 'Online' : 'Offline';
}

這是effect可選的清除機制

每個 effect 都可以返回一個清除函數(shù)。

React會在組件卸載的時候執(zhí)行清除操作

effect 在每次渲染的時候都會執(zhí)行。

React 會在執(zhí)行當前 effect 之前對上一個 effect 進行清除。

import { useEffect, useState } from 'react';

const Example = () => {
  const [count, setCount] = useState(0);

  useEffect(() => {
    console.log("哈哈哈,useEffect 又執(zhí)行了");
    return () => {
      console.log("看到我就知道執(zhí)行了清除機制(~ ̄▽ ̄)~");
    };
  }, [count]);

  return (
    <div>
      <p>那啥,你點了我 {count} 次 ????????</p>
      {console.log("這是 dom 節(jié)點渲染了,小樣╭(╯^╰)╮")}
      <button
        onClick={() => {
          setCount(count + 1);
        }}
      >
        你覺得你點擊我之后會發(fā)生什么??????
      </button>
    </div>
  );
};

function App() {
  return (
    <div className="App">
      <Example />
    </div>
  );
}

export default App;

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 如何使用 electron-forge 搭建 React + Ts 的項目

    如何使用 electron-forge 搭建 React + Ts&n

    本文介紹了如何使用Electron、electron-forge、webpack、TypeScript、React和SCSS等技術搭建一個桌面應用程序,通過這篇文章,開發(fā)者可以創(chuàng)建一個包含React組件、SCSS樣式、靜態(tài)資源和Loading頁面的應用,感興趣的朋友一起看看吧
    2025-01-01
  • 一文詳解ReactNative狀態(tài)管理rematch使用

    一文詳解ReactNative狀態(tài)管理rematch使用

    這篇文章主要為大家介紹了ReactNative狀態(tài)管理rematch使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • React?useEffect異步操作常見問題小結

    React?useEffect異步操作常見問題小結

    本文主要介紹了React?useEffect異步操作常見問題小結,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • 詳解react中的state的簡寫方式

    詳解react中的state的簡寫方式

    React是一個狀態(tài)機主要體現(xiàn)在state上,通過與用戶交易實現(xiàn)不同的狀態(tài),state是組件的私有屬性,是用來初始化的,本文重點給大家介紹react中的state的簡寫方式,感興趣的朋友一起看看吧
    2021-08-08
  • react中通過props實現(xiàn)父子組件間通信的使用示例

    react中通過props實現(xiàn)父子組件間通信的使用示例

    在React中,父組件可以通過props屬性向子組件傳遞數(shù)據(jù),子組件可以通過props屬性接收父組件傳遞過來的數(shù)據(jù),本文就來介紹一下如何實現(xiàn),感興趣的可以了解一下
    2023-10-10
  • react?實現(xiàn)表格列表拖拽排序的示例

    react?實現(xiàn)表格列表拖拽排序的示例

    本文主要介紹了react?實現(xiàn)表格列表拖拽排序,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02
  • React.js?Gird?布局編寫鍵盤組件

    React.js?Gird?布局編寫鍵盤組件

    這篇文章主要介紹了React.js?Gird?布局編寫鍵盤組件,Grid?布局則是將容器劃分成"行"和"列",產(chǎn)生單元格,然后指定"項目所在"的單元格,可以看作是二維布局
    2022-09-09
  • React diff算法的實現(xiàn)示例

    React diff算法的實現(xiàn)示例

    這篇文章主要介紹了React diff算法的實現(xiàn)示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • React18新特性startTransition詳解

    React18新特性startTransition詳解

    React18的新特性startTransition主要是為了優(yōu)化用戶體驗,通過標記低優(yōu)先級的更新任務,如頁面重渲染,使它們不會阻塞高優(yōu)先級的緊急任務如用戶輸入響應,本文介紹React18新特性startTransition,感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • 如何使用React的VideoPlayer構建視頻播放器

    如何使用React的VideoPlayer構建視頻播放器

    本文介紹了如何使用React構建一個基礎的視頻播放器組件,并探討了常見問題和易錯點,通過組件化思想和合理管理狀態(tài),可以實現(xiàn)功能豐富且性能優(yōu)化的視頻播放器
    2025-01-01

最新評論

渝中区| 临朐县| 衡阳县| 齐河县| 大港区| 诸城市| 清涧县| 扬中市| 聊城市| 奉贤区| 中方县| 湘阴县| 石棉县| 息烽县| 南宫市| 佛坪县| 贵定县| 钟祥市| 开封市| 呼伦贝尔市| 新源县| 邵东县| 玛纳斯县| 保山市| 永定县| 聂拉木县| 怀集县| 左权县| 西充县| 宾阳县| 石家庄市| 丰顺县| 高要市| 云霄县| 洪江市| 呼伦贝尔市| 伊金霍洛旗| 开阳县| 沐川县| 洞头县| 肇源县|