圖三:ANSII 樹狀圖(範例)
在React專案中,index.js
是應用程式的入口,負責將元件渲染到瀏覽器DOM的畫面上。
index.js
const root = ReactDOM.createRoot(document.getElementById('root'));
document.getElementById('root')
:在 HTML 檔案中找到<div id="root"></div>
這個容器,ID稱為root
ReactDOM.createRoot()
:
root.render(
<React.StrictMode>
<App />
</React.StrictMode>
);
root.render(...)
:
<App />
元件轉換成真實的 DOM 元素,並放到<div id="root">
中<React.StrictMode>
:
<App />
<App />
開始建立元件樹,再渲染所有子元件版主您好!感謝您這篇關於 React 核心概念與運作原理的詳細說明,內容非常清楚易懂,對於初學者來說很有幫助。
您對 SPA 的解釋、元件化架構的優勢,以及 index.js
中 ReactDOM.createRoot
和 <React.StrictMode>
的作用都解析得很到位,搭配圖示讓複雜的觀念變得更直觀。我很欣賞您能將這些重要基礎知識整理得如此有條理。
想請問在您開發初期,有沒有遇到哪些關於元件拆分或 StrictMode
提醒方面,讓您印象深刻的經驗可以分享呢?
再次謝謝您的分享!也歡迎版主有空參考我的系列文「南桃AI重生記」:/n https://ithelp.ithome.com.tw/users/20046160/ironman/8311
感謝您撥空留言~
確實在我開發初期時,我對元件拆分並沒有太多概念,一開始還想說:為什麼還要大費周章把原本 component 裡的程式碼特地拆分出去,不過後來實作後發現的確有這個必要除了可以讓邏輯功能更清楚地分開之外,程式碼的版面也能更乾淨、更好維護。
而 StrictMode
這部分,我是透過影片教學中才知道 useEffect
本身會執行兩次;當時也覺得不太明白這個用意,但是後來深入了解後,我才知道這個是 React 在開發模式下幫忙偵測副作用是否安全。
這兩個經驗真的是我當時開發時有的疑惑,不過在後來搞懂之後,會覺得學習 React 蠻有趣的,因為當中的設計真的有很多巧思。