ReactJS路由器


在本章中,我們將學習如何為應用程式設定路由。

第1步 - 安裝React Router

安裝react-router的簡單方法是在命令提示字元視窗中執行以下程式碼:

F:\worksp\reactjs\reactApp>npm install react-router

在專案的根目錄下建立.babelrc檔案,並在.babelrc檔案中新增以下程式碼 -

{
  "presets": ["es2015", "react"]
}

建立一個檔案:index.html在根目錄下,並使用以下的程式碼 -

<!DOCTYPE html>
<html lang = "en">

   <head>
      <meta charset = "UTF-8">
      <title>React Router範例</title>
   </head>

   <body>
      <div id = "app"></div>
      <script type = "text/javascript" src = "bundle.js"></script>
   </body>

</html>

要組態webpack.config.js檔案,請在webpack.config.js中新增以下程式碼 -

module.exports = {
   entry: './app/main.js',
   output: {
      filename: 'bundle.js'
   },
   module: {
      loaders: [
         {
            loader: 'babel-loader',
            test: /\.js$/,
            exclude: /node_modules/
         }
      ]
   },
   devServer: {
      port: 8080
   }
};

第2步 - 新增一個路由器

現在,我們將新增路線到應用程式。 建立一個名為App的目錄,並建立檔案並命名為main.jsApp.js

檔案:main.js -

import React from 'react';
import { render } from 'react-dom';
import App from './App';

render(<App />, document.getElementById('app'));

檔案:App.js -

import React, { Component } from 'react';
import { BrowserRouter as Router, Switch, Route, Link } from 'react-router-dom';
import Home from './Home';
import Login from './Login';

class App extends Component {
   render() {
      return (
         <Router>
            <div>
               <h2>Welcome to React Router Tutorial</h2>
               <ul>
                  <li><Link to={'/'}>Home</Link></li>
                  <li><Link to={'/Login'}>Login</Link></li>
               </ul>
               <hr />

               <Switch>
                  <Route exact path='/' component={Home} />
                  <Route exact path='/Login' component={Login} />
               </Switch>
            </div>
         </Router>
      );
   }
}
export default App;

第3步 - 建立元件

在這一步中,我們將在App目錄中建立兩個元件(Home)和(Login)。

檔案:Home.js -

import React, { Component } from 'react';

class Home extends Component {
   render() {
      return (
         <div>
            <h2>Home</h2>
         </div>
      );
   }
}
export default Home;

檔案:Login.js -

import React, { Component } from 'react';
import ReactDOM from 'react-dom';

class Login extends Component {
   render() {
      return (
         <div>
            <h2>Login</h2>
         </div>
      );
   }
}
export default Login;

當應用程式啟動時,我們將看到兩個可用於更改路由的連結。