編輯1: 原問(wèn)題:如何使用React建立單頁(yè)應(yīng)用程式
由於問(wèn)題不夠具體,之前已經(jīng)回答過(guò),需要從Imran Rafiq Rather的回答中學(xué)習(xí)React-routing
編輯2: 重寫(xiě)問(wèn)題,重新開(kāi)啟以獲取更具體的用例。
我正在按照教學(xué)學(xué)習(xí)如何使用React-route路由頁(yè)面。到目前為止,我了解到需要在createBrowserRouter()元件的createRoutesFromElements函數(shù)內(nèi)部加上<Route>標(biāo)籤,程式碼如下:
const router = createBrowserRouter( createRoutesFromElements( <Route path="/" element={<RootLayout/>}> <Route index element={<Home/>}/> </Route> ))
在每個(gè)"element="中,都導(dǎo)入了以模組化方式建立的頁(yè)面。內(nèi)容如下:
來(lái)自教學(xué)的RootLayout.js
#export default function RootLayout(){ return( <div className='root-layout'> <header> <nav> <h1> Jobarouter </h1> <NavLink to="/"> Home </NavLink> <NavLink to="about"> About </NavLink> <NavLink to="help"> Help </NavLink> <NavLink to="careers"> Login </NavLink> </nav> </header> <main> <Outlet/> </main> </div> ) }
如果我有一個(gè)由JSX React Bootstrap創(chuàng)建的舊元件,程式碼如下:
NavbarLayout.js
const NavbarComp = () => { //navbar content } export default NavbarComp;
那麼路由將會(huì)是這樣的:
<header> <NavbarComp/> </header>
為什麼元件在我的頁(yè)面上沒(méi)有顯示,也沒(méi)有任何錯(cuò)誤?
您正在嘗試將JS元件放入一個(gè)普通的index.html
檔案中。
<body> <Navbar\> <Gallery\> </body>
這根本不適用。使用像ReactJS這樣的函式庫(kù),我們已經(jīng)透過(guò)ReactDOM.render(<App/>, document.querySelect('#root'))
庫(kù)完成了所有的基礎(chǔ)工作,它在內(nèi)部就是JavaScript本身。因此,在這種情況下,單頁(yè)面應(yīng)用程式意味著我們使用一個(gè)具有id='root'的元素,並將所有的程式碼放在該元素中。
因此,這不是一個(gè)正確的方法。以這種方式啟動(dòng)單頁(yè)應(yīng)用程式是行不通的,更不用說(shuō)後續(xù)的問(wèn)題了。