我目前正在學習React和Redux。現在我什麼兩辦得到一個更好的把握:React應該怎樣渲染
- 陣營 - 渲染組件在頁面上
- 終極版 - 保持頁
雖然我的問題是:我應該用React實際渲染什麼? React是否假設呈現整個頁面,即使是不會更改的標題?例如,我是否想爲標題創建一個新組件(徽標和標籤,而不是更改),或者只是將其添加到要渲染的HTML文件中?
我目前正在學習React和Redux。現在我什麼兩辦得到一個更好的把握:React應該怎樣渲染
雖然我的問題是:我應該用React實際渲染什麼? React是否假設呈現整個頁面,即使是不會更改的標題?例如,我是否想爲標題創建一個新組件(徽標和標籤,而不是更改),或者只是將其添加到要渲染的HTML文件中?
我建議添加絕對一切作爲一個React組件。在您安裝React應用程序的HTML文件中有一個<div>
。我發現當我開始使用React時,我會盡量避免編寫額外的代碼(當然,爲一個頭文件編寫一個組件,而不是原始HTML是多餘的行)。
但是這在某種程度上引入了複雜性。你的應用的不同部分渲染的方式不同。從長遠來看,以我的經驗來看,一致性和可讀性比少數幾行代碼更重要。
順便說一句,如果你使用的是stateless functional components(你的頭文件),它幾乎沒有任何額外的代碼。
import React from 'react';
export default Header =() => <header>My wonderful app</header>;
像大多數其他框架,你將有你的基地「的index.html」文件,其中將包括所有的依賴關係,然後它包含一個div,你將使你的反應成分進入身體。它會是這個樣子:
<html>
<head>
<-- script, css, framework files added here -->
</head>
<body>
<div id="reactApp"</div>
</body>
</html>
然後在反應將沿此線在底部的東西你的主應用程序文件:
ReactDOM.render(
<h1>Hello, world!</h1>,
document.getElementById('reactApp')
);
一切可以在被渲染反應,並傳承下去到那個div視圖。
完全有可能擁有混合頁面。例如:將導航欄保留爲原生HTML,其中內容爲React。
請記住,React是面向組件的,所以你可以把它看作小的小部件。
但是,您將經常有不同的小部件共享相同的狀態。在這種情況下,最好讓它們成爲同一組件樹的一部分。
你的問題沒有一個確定的答案。這取決於您的應用程序狀態需要什麼,但使用React來處理頁面的動態部分。那些你認爲沒有重新加載的部分可能會保持一個狀態,這就是React的舞臺管理可以派上用場的地方。