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

react底層的四大核心內(nèi)容架構(gòu)詳解

 更新時間:2022年03月13日 17:17:40   作者:神奇大叔  
這篇文章主要為大家詳細(xì)介紹了react四大核心內(nèi)容架構(gòu),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

react

  • 提供定義 react 組件(ReactElement)的必要函數(shù), 一般來說需要和渲染器(react-dom,react-native)一同使用. 在編寫react應(yīng)用的代碼時, 大部分都是調(diào)用此包的 api.如React.Component
  • 開發(fā)時使用的絕大部分api
    • class 組件中使用setState()
    • function 組件里面使用 hook,并發(fā)起dispatchAction去改變 hook 對象
    • 改變 context(其實也需要setState或dispatchAction的輔助才能改變)

react-dom

  • 是 react 與 web 平臺連接的橋梁(可以在瀏覽器和 nodejs 環(huán)境中使用), 將react-reconciler中的運(yùn)行結(jié)果輸出到 web 界面上. 在編寫react應(yīng)用的代碼時,大多數(shù)場景下, 能用到此包的就是一個入口函數(shù)ReactDOM.render(,document.getElementByID(‘root’)), 其余使用的 api, 基本是react包提供的.
  • 引導(dǎo)react應(yīng)用的啟動(通過ReactDOM.render).
  • 能夠?qū)eact-reconciler包構(gòu)造出來的fiber樹表現(xiàn)出來, 生成 dom 節(jié)點(瀏覽器中), 生成字符串(ssr)

react-reconciler

  • 綜合協(xié)調(diào)react-dom,react,scheduler各包之間的調(diào)用與配合,管理 react 應(yīng)用狀態(tài)的輸入和結(jié)果的輸出. 將輸入信號最終轉(zhuǎn)換成輸出信號傳遞給渲染器
  • 接收react-dom包(初次render)和react包(后續(xù)更新setState)發(fā)起的更新請求.
  • 將fiber樹的構(gòu)造過程包裝在一個回調(diào)函數(shù)中, 并將此回調(diào)函數(shù)傳入到scheduler包等待調(diào)度.

具體流程

  • 接受輸入(schedulerUpdateOnFiber), 將fiber樹生成邏輯封裝到一個回調(diào)函數(shù)中(涉及fiber樹形結(jié)構(gòu), fiber.updateQueue隊列, 調(diào)和算法等)
  • 把此回調(diào)函數(shù)(performSyncWorkOnRootperformConcurrentWorkOnRoot)送入scheduler進(jìn)行調(diào)度
  • scheduler會控制回調(diào)函數(shù)執(zhí)行的時機(jī), 回調(diào)函數(shù)執(zhí)行完成后得到全新的 fiber 樹
  • 再調(diào)用渲染器(如react-dom, react-native等)將 fiber 樹形結(jié)構(gòu)最終反映到界面上

scheduler

  • 調(diào)度機(jī)制的核心實現(xiàn), 控制由react-reconciler送入的回調(diào)函數(shù)的執(zhí)行時機(jī), 在concurrent模式下可以實現(xiàn)任務(wù)分片.
  • 在內(nèi)部維護(hù)一個任務(wù)隊列, 優(yōu)先級高的排在最前面
  • 循環(huán)消費任務(wù)隊列, 直到隊列清空.

整體工作邏輯(不一定正確)

  • 從updateContainer開始,根據(jù)scheduler進(jìn)行任務(wù)調(diào)度,展開后面流程

在這里插入圖片描述

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容! 

相關(guān)文章

  • 淺談React Router關(guān)于history的那些事

    淺談React Router關(guān)于history的那些事

    這篇文章主要介紹了淺談React Router關(guān)于history的那些事,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • React中Refs的使用場景及核心要點詳解

    React中Refs的使用場景及核心要點詳解

    在使用?React?進(jìn)行開發(fā)過程中,或多或少使用過?Refs?進(jìn)行?DOM?操作,這篇文章主要介紹了?Refs?功能和使用場景以及注意事項,希望對大家有所幫助
    2023-07-07
  • React實現(xiàn)pc端的彈出框效果

    React實現(xiàn)pc端的彈出框效果

    這篇文章主要為大家詳細(xì)介紹了React實現(xiàn)pc端的彈出框效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • React中進(jìn)行條件渲染的實現(xiàn)方法

    React中進(jìn)行條件渲染的實現(xiàn)方法

    React是一種流行的JavaScript庫,它被廣泛應(yīng)用于構(gòu)建Web應(yīng)用程序,在React中,條件渲染是一個非常重要的概念,它允許我們根據(jù)不同的條件來呈現(xiàn)不同的內(nèi)容,在本文中,我們將探討React如何進(jìn)行條件渲染,需要的朋友可以參考下
    2023-11-11
  • React詳細(xì)講解JSX和組件的使用

    React詳細(xì)講解JSX和組件的使用

    jsx就是javsscript與xml結(jié)合的一種格式,是js語法的一種擴(kuò)展,只要把html代碼寫在js中就是jsx。react中定義組件有3種寫法:函數(shù)的方式、es5的寫法、es6(類)的寫法
    2022-08-08
  • 詳解Ref在React中的交叉用法

    詳解Ref在React中的交叉用法

    眾所周知,react推出了hooks之后,很多項目就開始往hooks上靠攏,所以也就出現(xiàn)了class和hooks交叉使用的項目。這個時候使用ref需要注意一些東西
    2021-06-06
  • React項目使用ES6解決方案及JSX使用示例詳解

    React項目使用ES6解決方案及JSX使用示例詳解

    這篇文章主要為大家介紹了React項目使用ES6解決方案及JSX使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • react組件中過渡動畫的問題解決

    react組件中過渡動畫的問題解決

    這篇文章主要為大家介紹了react組件中過渡動畫的問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • React?useEffect異步操作常見問題小結(jié)

    React?useEffect異步操作常見問題小結(jié)

    本文主要介紹了React?useEffect異步操作常見問題小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • 詳解React Native頂|底部導(dǎo)航使用小技巧

    詳解React Native頂|底部導(dǎo)航使用小技巧

    本篇文章主要介紹了詳解React Native頂|底部導(dǎo)航使用小技巧 ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09

最新評論

枝江市| 阳泉市| 宁化县| 民乐县| 兴义市| 绥阳县| 西吉县| 元阳县| 蓝山县| 仙桃市| 托克逊县| 彭山县| 凤冈县| 宁城县| 哈巴河县| 元朗区| 分宜县| 墨玉县| 澄迈县| 福建省| 无锡市| 淳化县| 丰县| 同心县| 响水县| 抚远县| 黄石市| 乌拉特前旗| 久治县| 罗田县| 古浪县| 庆云县| 茌平县| 博湖县| 崇礼县| 繁峙县| 成武县| 江达县| 永寿县| 新巴尔虎左旗| 齐河县|