免费特黄视频_国产精品久久久av_久久香蕉网_国产精彩视频_中文二区_国产成人一区

二維碼
企資網

掃一掃關注

當前位置: 首頁 » 企資快報 » 品牌 » 正文

你對_ReactDOM.render(_...

放大字體  縮小字體 發(fā)布日期:2022-12-06 15:36:00    作者:付芳華    瀏覽次數(shù):57
導讀

| 慕課網精英講師 上古鵬感謝首次自「慕課網」,想了解更多IT干貨內容,程序員圈內熱聞,歡迎!ReactDOM.render函數(shù)是整個 React 應用程序首次渲染得入口函數(shù),你對它了解多少呢?本

| 慕課網精英講師 上古鵬

感謝首次自「慕課網」,想了解更多IT干貨內容,程序員圈內熱聞,歡迎!

ReactDOM.render函數(shù)是整個 React 應用程序首次渲染得入口函數(shù),你對它了解多少呢?本節(jié)主要介紹 ReactDOM 對象有哪些屬性與方法,ReactDOM.render函數(shù)在得三個重要參數(shù)分別是什么,以及函數(shù)返回值是什么。

ReactDOM 對象

// 源碼位置:packages/react-dom/src/client/ReactDOM.js

const ReactDOM = {

findDOMNode: function(...) { ... },

hydrate: function(...) { ... },

render: function (element, container, callback) {

// 會先檢驗container是否有效,無效則停止執(zhí)行且拋出錯誤

// ...

return legacyRenderSubtreeIntoContainer(null, element, container, false, callback);

},

unstable_renderSubtreeIntoContainer: function(...) {},

unmountComponentAtNode: function(...) {}

// ...

}

代碼示例 1.2.1 ReactDOM 對象得定義

ReactDOM 對象上面有findDOMNode、hydrate和render等多個函數(shù)。其中ReactDOM.render函數(shù)有三個參數(shù)和一個返回值。下面內容將會對這三個參數(shù)和返回值進行詳細說明。

理解 ReactDOM.render 函數(shù)得三個參數(shù)

ReactDOM.render( ... )得基本用法見代碼示例 1.2.2。

import React from 'react';

import ReactDOM from 'react-dom';

import UpdateCounter from './pages/UpdateCounter';

ReactDOM.render(<UpdateCounter name="Taylor" />, document.getElementById('root'));

代碼示例 1.2.2 ReactDOM.render 函數(shù)得使用

在代碼示例 1.2.1 中,傳入ReactDOM.render函數(shù)得兩個參數(shù)分別是<UpdateCounter name="Taylor" />和document.getElementById('root')。第二個參數(shù)很明顯是 DOM 元素,也就是 React 應用程序最終渲染在頁面中得容器。那么,我們該如何理解第壹個參數(shù)呢?

UpdateCounter是由 class 聲明得一個「類」,它在 React 中被稱為組件( component )。React 提供了 JSX 語法,基于 JSX 語法在函數(shù)或者「類」得兩側分別加上<和/>就變成了元素( element )。因此,<UpdateCounter name="Taylor" />就是一個 React 元素。在第二章中會詳細介紹 React 組件和 React 元素。

第三個參數(shù)是應用程序渲染完成后得回調函數(shù),這個參數(shù)是可選項,React 會在應用程序渲染完成后檢查是否有回調函數(shù),如果有則調用該回調函數(shù)。

ReactDOM.render函數(shù)除了執(zhí)行渲染任務外還有自己得返回值即legacyRenderSubtreeIntoContainer函數(shù)得執(zhí)行結果。那么,legacyRenderSubtreeIntoContainer函數(shù)得執(zhí)行結果是什么呢?

ReactDOM.render 函數(shù)得返回值

在 React 源碼中,legacyRenderSubtreeIntoContainer函數(shù)內部通過return得形式又嵌套了多層函數(shù)。為了方便看到ReactDOM.render函數(shù)最終得返回值,使用console.log(...)將函數(shù)執(zhí)行結果輸出,見代碼示例 1.2.3。

console.log('返回值',

ReactDOM.render(

<UpdateCounter name="Taylor" />, document.getElementById('root'), () => {console.log('渲染完成')}

)

);

// 輸出結果

UpdateCounter: {

context: {},

handleClick: ? (),

props: {name: "Taylor"},

refs: {},

state: {count: 0, text: "計數(shù)"},

// 更新觸發(fā)器

updater: {isMounted: ?, enqueueSetState: ?, enqueueReplaceState: ?, enqueueForceUpdate: ?},

// 存儲了首次渲染完成后對應得Fiber結點信息

_reactInternalFiber: FiberNode {tag: 1, key: null, stateNode: UpdateCounter, elementType: …},

_reactInternalInstance: {_processChildContext: ?},

isMounted: (...),

replaceState: (...),

// 繼承于React.Component

__proto__: Component,

}

代碼示例 1.2.3 ReactDOM.render 函數(shù)執(zhí)行后得返回值

ReactDOM.render函數(shù)得返回值是當前應用程序根組件得實例。組件實例是 React 應用程序運行時在內存中得一種臨時狀態(tài),組件實例得屬性包括了自身類定義得屬性以及繼承于React.Component得屬性。在UpdateCounter 實例中,state和handleClick為自身類得屬性,而context,props和updater等則繼承于React.Component。

小結

本章主要介紹了在研究 React 內部運行機制方面得一些思路與切入點以及 React 應用程序得首次渲染入口—ReactDOM.render函數(shù)。

歡迎「慕課網」,發(fā)現(xiàn)更多IT圈優(yōu)質內容,分享干貨知識,幫助你成為更好得程序員!

 
(文/付芳華)
免責聲明
本文僅代表作發(fā)布者:付芳華個人觀點,本站未對其內容進行核實,請讀者僅做參考,如若文中涉及有違公德、觸犯法律的內容,一經發(fā)現(xiàn),立即刪除,需自行承擔相應責任。涉及到版權或其他問題,請及時聯(lián)系我們刪除處理郵件:weilaitui@qq.com。
 

Copyright ? 2016 - 2025 - 企資網 48903.COM All Rights Reserved 粵公網安備 44030702000589號

粵ICP備16078936號

微信

關注
微信

微信二維碼

WAP二維碼

客服

聯(lián)系
客服

聯(lián)系客服:

在線QQ: 303377504

客服電話: 020-82301567

E_mail郵箱: weilaitui@qq.com

微信公眾號: weishitui

客服001 客服002 客服003

工作時間:

周一至周五: 09:00 - 18:00

反饋

用戶
反饋

主站蜘蛛池模板: 亚洲精品久久久久久下一站 | 欧美精品在线免费观看 | 亚洲永久 | 日本在线综合 | 精品久久久久久亚洲综合网站 | 久久99精品视频 | 国产91黄色 | 情侣黄网站免费看 | 久久aⅴ乱码一区二区三区 亚洲国产成人精品久久久国产成人一区 | 色综合色综合 | 日韩三级电影一区二区 | 精品一二区 | 四虎影院免费在线 | 人人干视频在线 | 中文字幕亚洲视频 | 久久精品二区 | 亚洲精选一区 | 亚洲aⅴ | 天天曰夜夜操 | 国产成人jvid在线播放 | 亚洲人成人一区二区在线观看 | 久久久一区二区三区四区 | 最近中文字幕第一页 | 日韩国产精品一区二区三区 | 日韩成人高清 | 精品久久久久一区二区国产 | 九九亚洲 | 国产精品久久久久久久免费大片 | 国产欧美日韩精品一区二区三区 | 成人精品系列 | 亚洲午夜精品在线观看 | 国产欧美日韩一区二区三区在线观看 | 亚洲国产精品一区二区第一页 | 91国产在线视频在线 | 国产不卡视频在线 | 欧美在线激情 | 在线国产小视频 | 中文字幕亚洲视频 | 亚洲一一在线 | 在线观看亚洲 | 91偷拍精品一区二区三区 |