編輯1: 原問題:如何使用React創(chuàng)建單頁應(yīng)用
由于問題不夠具體,之前已經(jīng)回答過,需要從Imran Rafiq Rather的回答中學習React-routing
編輯2: 重寫問題,重新打開以獲取更具體的用例。
我正在按照教程學習如何使用React-route路由頁面。到目前為止,我了解到需要在createBrowserRouter()組件的createRoutesFromElements函數(shù)內(nèi)部添加<Route>標簽,代碼如下:
const router = createBrowserRouter( createRoutesFromElements( <Route path="/" element={<RootLayout/>}> <Route index element={<Home/>}/> </Route> ))
在每個"element="中,都導(dǎo)入了以模塊化方式創(chuàng)建的頁面。內(nèi)容如下:
來自教程的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> ) }
如果我有一個由JSX React Bootstrap創(chuàng)建的舊組件,代碼如下:
NavbarLayout.js
const NavbarComp = () => { //navbar content } export default NavbarComp;
那么路由將是這樣的:
<header> <NavbarComp/> </header>
為什么組件在我的頁面上沒有顯示,也沒有任何錯誤?
您正在嘗試將JS組件放入一個普通的index.html
文件中。
<body> <Navbar\> <Gallery\> </body>
這根本不適用。使用像ReactJS這樣的庫,我們已經(jīng)通過ReactDOM.render(<App/>, document.querySelect('#root'))
庫完成了所有的基礎(chǔ)工作,它在內(nèi)部就是JavaScript本身。因此,在這種情況下,單頁面應(yīng)用程序意味著我們使用一個具有id='root'的元素,并將所有的代碼放在該元素中。
因此,這不是一個正確的方法。以這種方式啟動單頁面應(yīng)用程序是行不通的,更不用說后續(xù)的問題了。