react-router

react-router可分為三種

  • 【web】
    1. BrowserRouter
    2.HashRouter
    BrowserRouter與HashRouter的區(qū)別
    1.底層原理不一樣:
    BrowserRouter使用的是H5的history API,不兼容IE9及以下版本。
    HashRouter使用的是URL的哈希值。
    2.url表現(xiàn)形式不一樣
    BrowserRouter的路徑中沒有#,例如:localhost:3000/demo/test
    HashRouter的路徑包含#,例如:localhost:3000/#/demo/test
    3.刷新后對路由state參數(shù)的影響
    (1).BrowserRouter沒有任何影響,因為state保存在history對象中。
    (2).HashRouter刷新后會導致路由state參數(shù)的丟失。
    4.備注:HashRouter可以用于解決一些路徑錯誤相關的問題。
  • NativeRouter 【nactive】
  • MemoryRouter 【anywhere】
BrowserRouter

命令行輸入

npm i --save react-router-dom

import { render } from 'react-dom';
import { BrowserRouter } from 'react-router-dom'
import AppRouter from './AppRouter'
const Root = document.getElementById('root')
render(
  <BrowserRouter>
    <AppRouter />
  </BrowserRouter>,
  Root
);
import React from 'react'
import { Route, Link } from 'react-router-dom'

export default class AppRouter extends React.Component {
    constructor(props) {
        super(props);
    }
    render() {
        return (
            <>
                <ul>
                    <li><Link to='/'>首頁</Link></li>
                    <li><Link to='/about'>關于</Link></li>
                    <Route path='/' exact component={Index}></Route>
                    <Route path='/about' component={About}></Route>
                </ul>
            </>
        )
    }
}
function Index() {
    return (
        <div>
            我是首頁
        </div>
    )
}
function About() {
    return (
        <div>
            我是關于
        </div>
    )
}
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容