React+TypeScript入門-----BrowserRouter

相關文章
TypeScript+React入門
TypeScript+React入門-----引入css
React+TypeScript入門-----BrowserRouter
準備工做:
安裝react-router-domcss

npm i react-router-dom -S

配置webpack,劃重點,若是直接在瀏覽器地址裏輸入路徑,這個是必需要配置的react

devServer:{
        historyApiFallback:true
    }

先寫兩個組件備用,很是簡單的兩個組件webpack

class R1 extends React.Component{
    render(){
        return <div>1</div>
    }
}

class R2 extends React.Component{
    render(){
        return <div>2</div>
    }
}

引入BrowserRouter和Route,這兩個目前就夠用了web

import { Route, BrowserRouter } from 'react-router-dom';

建立路由並渲染npm

class Rts extends React.Component{
    render(){
        return  <div className="test">   
                    <BrowserRouter> 
                        <div>
                            <Route exact={true} path="/" component={R1}></Route>
                            <Route exact={true} path="/r2" component={R2}></Route>
                        </div>   
                    </BrowserRouter>
                                        
                 </div>
    }
}

const render = () => {
    ReactDOM.render(  
        <Rts></Rts> ,
        document.querySelector('#app')
    )
}
render();

打開瀏覽器默認就是1,而後在瀏覽器的地址輸入 yourServer/r2,就能夠看到頁面上顯示2了segmentfault

使用Link:
首先須要引入Link,從react-router-dom多引入一個便可瀏覽器

import { Route, BrowserRouter, Link } from 'react-router-dom';

使用Link建立一個組件react-router

class RLink extends React.Component{
    render(){
        return <ul>
            <li><Link to="/">顯示1</Link></li>
            <li><Link to="/r2">顯示2</Link></li>             
        </ul>
    }
}

修改Rts組件,注意標籤嵌套層級app

class Rts extends React.Component{
    render(){
        return  <div className="test">                      
                    <BrowserRouter>                                                 
                        <div>
                            <RLink></RLink>
                            <Route exact={true} path="/" component={R1}></Route>
                            <Route exact={true} path="/r2" component={R2}></Route>
                        </div>   
                    </BrowserRouter>
                                        
                 </div>
    }
}

這樣就行了,實際效果如圖
圖片描述
更新:HashRouter
HashRouter其實跟BrowserRouter使用方法差很少,大同小異dom

相關文章
相關標籤/搜索