在React页面中导入JSX以创建导航栏
P粉099145710
P粉099145710 2024-01-10 17:58:26
0
1
419

编辑1: 原问题:如何使用React创建单页应用

由于问题不够具体,之前已经回答过,需要从Imran Rafiq Rather的回答中学习React-routing

编辑2: 重写问题,重新打开以获取更具体的用例。

我正在按照教程学习如何使用React-route路由页面。到目前为止,我了解到需要在createBrowserRouter()组件的createRoutesFromElements函数内部添加<Route>标签,代码如下:

const router = createBrowserRouter( 
createRoutesFromElements(
   <Route path="/" element={<RootLayout/>}>
        <Route index element={<Home/>}/>
   </Route>
))

在每个"element="中,都导入了以模块化方式创建的页面。内容如下:

来自教程的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创建的旧组件,代码如下:

NavbarLayout.js

const NavbarComp = () => {
   //navbar content
}

export default NavbarComp;

那么路由将是这样的:

<header>
            <NavbarComp/>
        </header>

为什么组件在我的页面上没有显示,也没有任何错误?

P粉099145710
P粉099145710

全部回复(1)
P粉549986089

您正在尝试将JS组件放入一个普通的index.html文件中。

<body>
  <Navbar\>
  <Gallery\>
</body>

这根本不适用。使用像ReactJS这样的库,我们已经通过ReactDOM.render(<App/>, document.querySelect('#root'))库完成了所有的基础工作,它在内部就是JavaScript本身。因此,在这种情况下,单页面应用程序意味着我们使用一个具有id='root'的元素,并将所有的代码放在该元素中。

因此,这不是一个正确的方法。以这种方式启动单页面应用程序是行不通的,更不用说后续的问题了。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板