gpt4 book ai didi

reactjs - ReactJS 中的登录页面与单页应用程序 (SPA) 分离

转载 作者:行者123 更新时间:2023-12-03 13:22:02 24 4
gpt4 key购买 nike

我正在使用 ReactJS 开发一个单页应用程序 (SPA),我想知道如何在单独的页面中显示登录页面。

我使用 create-react-app 作为应用程序的基础,目前我正在 App.js 文件中定义 SPA 的模板,并且每个组件都在不同的 .js 文件中:Page1.jsPage2.js 等。我正在使用 react-router-dom (V ^4.2.2) 用于我的应用程序的路由。

我的App.js文件:

//node_modules (using ES6 modules)
import React, { Component } from 'react';
import { BrowserRouter as Router, Route } from 'react-router-dom';

//others
import { Home } from './pages/Home.js';
import { Page1 } from './pages/Page1.js';
import { Page2 } from './pages/Page2.js';

//App variables
const { Content, Footer, Sider } = Layout;

class App extends Component {
render() {
return (
<Router>
<Layout>
<Sider>
//some code
</Sider>
<Layout>
<Header>
//some code
</Header>
<Content>
<Route exact path="/" component={Home}/>
<Route path="/page1" component={Page1}/>
<Route path="/page2" component={Page2}/>
</Content>
<Footer>
//some code
</Footer>
</Layout>
</Layout>
</Router>
);
}
}

export default App;

最佳答案

在跳转到代码之前,请注意,

Routereact-route-dom (又名 React router v4 及以上版本)只是一个 Component其中可能是渲染 View 的 StatelessComponent 或 ComponentClass。您可以引用这里,
https://reacttraining.com/react-router/web/guides/philosophy

在你的问题中,

I would like to know how can I have the Login page in a separate page

如果您的意思是要渲染Login查看没有 Layout那么你可能想这样做,

App.js

import Main from './Main';    // Your original <App /> page
import Login from './Login'; // Your new <Login /> page

// In your App component

<Router>
<Switch>
<Route exact path="/" component={Main} />
<Route path="/login" component={Login} />
</Switch>
</Router>

// Export your App component

这里我想提几点,

  1. 我添加<Switch>包含一个或多个<Route />因为它将确保您的应用程序仅渲染 Route 中的一个 View (记住 <Route /> 只是根据 url 的匹配路径渲染 View 的组件)。因此,您可能需要包装您的 <PageABC /><Switch />否则它将在后台渲染所有 View 。
    引用:https://reacttraining.com/react-router/web/api/Switch
  2. 尝试创建一个新组件 <Main />并包装您的原件<App />新创建的组件布局<Main /> 。创建您的<Login />组件以及您的登录页面布局
  3. 它将完成将主要内容与登录页面分开的工作,但这不会对用户进行身份验证。您基本上可以通过访问 /login 自由地进入登录页面。点击 URL 并返回主页 /在网址上。如果您想创建授权和未经授权路线您可以查看本教程 All About React Router 4
  4. 您可以选择添加<Redirect to="/somePublicUrl" />确保您的应用在 url 与任何路由路径不匹配时始终呈现某些 View

希望对您有帮助。如果有什么不能满足您的需求,请告诉我。

关于reactjs - ReactJS 中的登录页面与单页应用程序 (SPA) 分离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47790081/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com