欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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中的運行結(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進行調(diào)度
  • scheduler會控制回調(diào)函數(shù)執(zhí)行的時機, 回調(diào)函數(shù)執(zhí)行完成后得到全新的 fiber 樹
  • 再調(diào)用渲染器(如react-dom, react-native等)將 fiber 樹形結(jié)構(gòu)最終反映到界面上

scheduler

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

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

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

在這里插入圖片描述

總結(jié)

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

相關(guān)文章

  • react中的useImperativeHandle()和forwardRef()用法

    react中的useImperativeHandle()和forwardRef()用法

    這篇文章主要介紹了react中的useImperativeHandle()和forwardRef()用法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • React 原理詳解

    React 原理詳解

    這篇文章主要介紹了深入理解react的原理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-10-10
  • React中的useEffect四種用法分享

    React中的useEffect四種用法分享

    這篇文章主要給大家分享React中的useEffect四種用法,useEffect中 觸發(fā)更新,重復(fù)的 useEffect,依賴值觸發(fā)回調(diào),useEffect 的返回值,通過代碼示例介紹的非常詳細,需要的朋友可以參考下
    2023-07-07
  • React?Hook之使用State?Hook的方法

    React?Hook之使用State?Hook的方法

    這篇文章主要為大家詳細介紹了React使用State?Hook的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • 使用webpack配置react-hot-loader熱加載局部更新

    使用webpack配置react-hot-loader熱加載局部更新

    這篇文章主要介紹了使用webpack配置react-hot-loader熱加載局部更新,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • 關(guān)于React Native使用axios進行網(wǎng)絡(luò)請求的方法

    關(guān)于React Native使用axios進行網(wǎng)絡(luò)請求的方法

    axios是一個基于Promise的Http網(wǎng)絡(luò)庫,可運行在瀏覽器端和Node.js中,Vue應(yīng)用的網(wǎng)絡(luò)請求基本都是使用它完成的。這篇文章主要介紹了React Native使用axios進行網(wǎng)絡(luò)請求,需要的朋友可以參考下
    2021-08-08
  • React+Typescript項目環(huán)境搭建并使用redux環(huán)境的詳細過程

    React+Typescript項目環(huán)境搭建并使用redux環(huán)境的詳細過程

    這篇文章主要介紹了React+Typescript項目環(huán)境搭建并使用redux環(huán)境的詳細過程,本文通過圖文實例相結(jié)合給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • 淺談React多個setState會調(diào)用幾次

    淺談React多個setState會調(diào)用幾次

    在React的生命周期鉤子和合成事件中,多次執(zhí)行setState,會被調(diào)用幾次,本文就詳細的介紹一下,感興趣的可以了解一下
    2021-11-11
  • React實現(xiàn)一個拖拽排序組件的示例代碼

    React實現(xiàn)一個拖拽排序組件的示例代碼

    這篇文章主要給大家介紹了React實現(xiàn)一個拖拽排序組件?-?支持多行多列、支持TypeScript、支持Flip動畫、可自定義拖拽區(qū)域,文章通過代碼示例介紹的非常詳細,需要的朋友可以參考下
    2023-11-11
  • React Native react-navigation 導(dǎo)航使用詳解

    React Native react-navigation 導(dǎo)航使用詳解

    本篇文章主要介紹了React Native react-navigation 導(dǎo)航使用詳解,詳解的介紹了react-navigation導(dǎo)航的使用,具有一定的參考價值,有興趣的可以了解一下
    2017-12-12

最新評論