中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

網(wǎng)站推廣設計做哪些口碑營銷的主要手段有哪些

網(wǎng)站推廣設計做哪些,口碑營銷的主要手段有哪些,微網(wǎng)站和web網(wǎng)站首頁,洱源名師工作室網(wǎng)站建設Reconcliler啟動過程 Reconcliler啟動過程實際就是React的啟動過程位于react-dom包&#xff0c;銜接reconciler運作流程中的輸入步驟.在調(diào)用入口函數(shù)之前&#xff0c;reactElement(<App/>) 和 DOM對象 div#root 之間沒有關(guān)聯(lián)&#xff0c;用圖片表示如下&#xff1a; 在啟…

Reconcliler啟動過程

  • Reconcliler啟動過程實際就是React的啟動過程
  • 位于react-dom包,銜接reconciler運作流程中的輸入步驟.
  • 在調(diào)用入口函數(shù)之前,reactElement(<App/>) 和 DOM對象 div#root 之間沒有關(guān)聯(lián),用圖片表示如下:
  • 在啟動時,在React內(nèi)部,一般來說,會生成3個對象,都是全局對象

創(chuàng)建全局對象

  • 1 )ReactDOM(Blocking)Root對象

    • ReactDOM對象,也就是Root對象
    • 屬于react-dom包,該對象暴露有render, unmount方法,通過調(diào)用該實例的render方法
    • 可以引導react應用的啟動
  • 2 )FiberRoot 對象

    • 屬于react-reconciler包,作為react-reconciler在運行過程中的全局上下文,
    • 保存fiber構(gòu)建過程中所依賴的全局狀態(tài)
    • 其大部分實例變量用來存儲fiber構(gòu)造循環(huán)過程的各種狀態(tài)
    • react應用內(nèi)部,可以根據(jù)這些實例變量的值,控制執(zhí)行邏輯
  • 3 )HostRootFiber 對象

    • 屬于react-reconciler包,這是react應用中的第一個Fiber對象
    • 是Fiber樹的根節(jié)點,節(jié)點的類型是HostRoot.
  • 這3個對象是react體系得以運行的基本保障

  • 一經(jīng)創(chuàng)建大多數(shù)場景不會再銷毀(除非卸載整個應用root.unmount())

  • 這一過程是從react-dom包發(fā)起,內(nèi)部調(diào)用了react-reconciler包

  • 核心流程圖如下,其中紅色標注了3個對象的創(chuàng)建時機

創(chuàng)建ReactDOM Root對象

  • 1.調(diào)用 ReactDOM. createRoot創(chuàng)建 ReactDOMRoot例
  • 2.調(diào)用ReactDOMRoot例的render方法
  • 3.調(diào)用createRootImpl創(chuàng)建fiberRoot對象,并將其掛載到this._internalRoot上.
  • 4.原型上有render和 unmount方法,且內(nèi)部都會調(diào)用 updateContainer進行更新.

創(chuàng)建fiberRoot對象{#create-root-impl}

  • 無論哪種模式下,在ReactDOM(Blocking)Root的創(chuàng)建過程中

  • 都會調(diào)用一個相同的函數(shù)createRootImpl,查看后續(xù)的函數(shù)調(diào)用

  • 最后會創(chuàng)建fiberRoot對象(在這個過程中,特別注意RootTag的傳遞過程)

    // 注意:2種模式下的tag是各不相同(分別是ConcurrentRoot,LegacyRoot).
    this._internalRoot = createRootImpl(container, tag, options);
    
    function createRootImpl(container:Container,tag: RootTag,options: void RootOptions,
    ) {// ...省略部分源碼(有關(guān)hydrate服務端渲染等,暫時用不上)// 1.創(chuàng)建fiberRootconst root = createContainer(container, tag, hydrate, hydrationCallbacks);// 2.標記dom對象,把dom和fiber對象關(guān)聯(lián)起來markContainerAsRoot(root.current, container);// ...省略部分無關(guān)代碼return root;
    }
    
    export function createContainer(containerInfo: Container,tag: RootTag,hydrate: boolean,hydrationCallbacks: null SuspenseHydrationCallbacks,
    ): OpaqueRoot {// 創(chuàng)建fiberRoot對return createFiberRoot(containerInfo, tag, hydrate, hydrationCallbacks);
    }
    

創(chuàng)建HostRootFiber對象

  • 在createFiberRoot中,創(chuàng)建了 react應用的首個fiber對象

  • 稱為 HostRootFiber(fiber.tag = HostRoot)

    export function createFiberRoot(containerInfo: any,tag: RootTag,hydrate: boolean,hydrationCallbacks: null | SuspenseHydrationCallbacks,
    ): FiberRoot {// 創(chuàng)建fiberRoot對象,注意RootTag的傳遞const root: FiberRoot = (new FiberRootNode(containerInfo, tag, hydrate): any);// 1.這里創(chuàng)建了`reac`應用的首個`fiber`對象,稱為`HostRootfiber`const uninitializedFiber = createHostRootFiber(tag);root.current = uninitializedFiber;uninitializedFiber.stateNode = root;// 2.初始化HostRootFiber的updateQueueinitializeUpdateQueue(uninitializedFiber);return root;
    }
    
  • 注意:fiber樹中所有節(jié)點的mode都會和HostRootFiber.mode一致

  • 新建的fiber節(jié)點,其mode來源于父節(jié)點,所以HostRootFiber.mode非常重要

  • 它決定了以后整個fiber樹構(gòu)建過程.

  • 運行到這里,3個對象創(chuàng)建成功,react應用的初始化完畢

可中斷渲染

  • react中最廣為人知的可中斷渲染
    • render可以中斷,部分生命周期函數(shù)有可能執(zhí)行多次
    • UNSAFE_componentwillMount, UNSAFE_componentWillReceiveProps
    • 只有在 HostRootFiber.mode === ConcurrentRoot 才會開啟如果使用的是legacy
    • 即通過 ReactDOM.render(<App/>,dom) 這種方式啟動時
    • HostRootFiber.mode = NoMode
  • 這種情況下無論是首次render還是后續(xù)update都只會進入同步工作循環(huán)
  • reconciliation沒有機會中斷,所以生命周期函數(shù)只會調(diào)用一次
http://www.risenshineclean.com/news/51094.html

相關(guān)文章:

  • 現(xiàn)在從事網(wǎng)站開發(fā)如何網(wǎng)站優(yōu)化排名服務
  • 網(wǎng)站建設佰金手指科捷一ui設計
  • 甘肅網(wǎng)站建設seo策略什么意思
  • 網(wǎng)站關(guān)鍵詞重要嗎新手怎么學電商運營
  • reactjs 做的網(wǎng)站媒體公關(guān)
  • 萊蕪最好的網(wǎng)站建設公司網(wǎng)站注冊時間查詢
  • 運維為什么沒人干濰坊seo關(guān)鍵詞排名
  • 購物網(wǎng)站建設的原理谷歌外鏈
  • 廣州知名網(wǎng)站建設性價比高競價推廣是做什么的
  • 服裝網(wǎng)站模板下載360指數(shù)在線查詢
  • 百度搜不到WordPress文章seo怎么讀
  • 排版好看的網(wǎng)站界面百度官網(wǎng)網(wǎng)站首頁
  • 用asp做網(wǎng)站怎么美觀百度一下你就知道百度首頁
  • 新注冊域名做網(wǎng)站好處河北百度seo點擊軟件
  • 帶后臺網(wǎng)站模板1688關(guān)鍵詞排名查詢
  • 北流網(wǎng)站建設網(wǎng)站搭建教程
  • html5做服裝網(wǎng)站中國萬網(wǎng)域名查詢
  • 網(wǎng)站開發(fā)過程中出現(xiàn)的問題廣東網(wǎng)站seo
  • 網(wǎng)站主頁排版深圳十大教育培訓機構(gòu)排名
  • wordpress同步發(fā)布泉州seo技術(shù)
  • php家具網(wǎng)站模版寧波seo推薦推廣平臺
  • 我想自己建個網(wǎng)站買貨 怎么做網(wǎng)站推廣優(yōu)化方法
  • 網(wǎng)頁界面設計使用的單位主要是寧波網(wǎng)站推廣優(yōu)化
  • 游戲系統(tǒng)網(wǎng)站開發(fā)說明書無代碼系統(tǒng)搭建平臺
  • 莆田制作公司網(wǎng)站b站推廣入口2023破解版
  • 自己做的網(wǎng)站怎么放圖片建立網(wǎng)站的幾個步驟
  • 畢業(yè)設計網(wǎng)站開發(fā)web網(wǎng)頁制作成品
  • 查企業(yè)數(shù)據(jù)要去什么網(wǎng)站12345瀏覽器
  • 網(wǎng)站備案icp備案輿情分析網(wǎng)站免費
  • 廣元網(wǎng)站建設專業(yè)人員網(wǎng)盤app下載