react學習系列2使用react-routerv4
-
問:react-router,react-router-native 和 react-router-dom 的區別
答:react-router是核心。react-router-native 和 react-router-dom是在 react-router 的基礎上針對不同執行環境做為額外補充。對於web環境使用 react-router-dom。對於開發 react-native,使用 react-router-native 即可。 -
例子:手動跳轉
路由檔案 routerMap
import React from `react`
import { BrowserRouter as Router, Route, Link, Switch } from `react-router-dom`
import Home from `../Pages/Home/`
import List from `../Pages/List/`
import Detail from `../Pages/Detail/`
import NoMatch from `./404`
// 下面幾行是老式寫法,可以忽略
// import createBrowserHistory from `history/createBrowserHistory`;
// 是個用於瀏覽器導航#的歷史物件
// const history = createBrowserHistory()
// <BrowserRouter /> 其實就是<Router history={history} />
export class RouterMap extends React.Component {
render() {
return (
<Router>
<div>
<ul>
<li><Link to="/">Home</Link></li>
<li><Link to="/list">List</Link></li>
</ul>
<hr/>
<Switch>
<Route exact path="/" component={Home} />
<Route exact path="/list" component={List} />
<Route path="/detail/:id" component={Detail} />
<Route component={NoMatch}/>
</Switch>
</div>
</Router>
);
}
}
入口檔案
import React from `react`;
import ReactDOM from `react-dom`;
import App from `./App`;
import {RouterMap} from "./Router/routerMap";
ReactDOM.render(<div>
<App />
<RouterMap />
</div>, document.getElementById(`root`));
List頁面
import React from `react`
export default class List extends React.Component {
constructor({ match }) {
super();
this.state = {
match
}
}
clickHandle(item) {
//關於history
// http://www.jianshu.com/p/e3adc9b5f75c
this.props.history.push(`/detail/` + item)
}
render() {
const arr = [1,2,3]
console.log(this.state.match)
return (
<div>
<h3>List Page</h3>
<ul>
{
arr.map((item, index) =>
<li key={index} onClick={this.clickHandle.bind(this, item)}>{item}</li>
)
}
</ul>
</div>
)
}
}
Detail 頁面
import React from `react`
export default class Detail extends React.Component {
constructor({ match }) {
super();
this.state = {
match
}
}
render() {
console.log(this.state.match)
return (
<div>Detail Page {this.state.match.params.id}</div>
)
}
}
相關文章
- react學習系列5使用reduxReactRedux
- React.js系列學習ReactJS
- react學習筆記2React筆記
- react 學習--使用MixinReact
- react學習系列之深入jsxReactJS
- React從入門到精通學習系列之(1)安裝ReactReact
- React學習筆記2:React官方CommentBox實踐React筆記
- 學習ReactReact
- React學習React
- 深度學習系列(2)——神經網路與深度學習深度學習神經網路
- React-Native學習系列(二) Image和ScrollViewReactView
- struts2學習筆記系列(一)筆記
- jQuery學習(2)ajax()使用jQuery
- React 深入系列2:元件分類React元件
- react + typescript 學習ReactTypeScript
- 學習react教程React
- React開發管理後臺實踐2---React基本內容學習React
- webpack 快速構建 React 學習環境(2)-- 熱更新WebReact
- React學習(1)-create-react-appReactAPP
- react js學習手記:react 事件ReactJS事件
- react學習筆記React筆記
- React 學習資源React
- react 學習 問題React
- React學習分享(二)React
- React簡明學習React
- react學習總結React
- react學習目錄React
- react 學習筆記React筆記
- React入門學習React
- React學習之HookReactHook
- React 學習之 createElementReact
- React Native學習之 ListView 的簡單使用React NativeView
- Harbor 學習分享系列2 – Harbor專案介紹
- docker學習系列2儲存對容器的修改Docker
- 學習C過程中的筆記系列-2筆記
- 學習OpenCV:濾鏡系列(2)——擴張&擠壓OpenCV
- 精益 React 學習指南 (Lean React)- 4.2 react patternsReact
- 00、React系列之--React 系列概述React