React-Router-v4

2017-10-24  本文已影响0人  lvhaohua

react-router-v4

一、简介

一切皆组件

react-router在这个版本被拆分成了三个包


二、基本概念

  1. 安装

基于web浏览器开发,所以只需要引入react-router-dom

npm install -S react-router-dom

or

yarn add react-router-dom
  1. 官方示例
import React from 'react'
import {BrowserRouter as Router,Route,Link} from 'react-router-dom'

const BasicExample = () => (
  <Router>
    <div>
      <ul>
        <li><Link to="/">首页</Link></li>
        <li><Link to="/about">关于</Link></li>
        <li><Link to="/topics">主题列表</Link></li>
      </ul>

      <hr/>

      <Route exact path="/" component={Home}/>
      <Route path="/about" component={About}/>
      <Route path="/topics" component={Topics}/>
    </div>
  </Router>
)

注:
BrowserRouter(路由器)
Route(路由)
    exact:唯一匹配,仅匹配"/",否则会同时匹配"/"和"/xxx"
    path:路径
    component:路径匹配后所要渲染的组件
Link(链接 想象成<a>标签) 
const Home = () => (
  <div>
    <h2>首页</h2>
  </div>
)

const About = () => (
  <div>
    <h2>关于</h2>
  </div>
)
const Topics = ({ match }) => (
  <div>
    <h2>主题列表</h2>
    <ul>
      <li>
        <Link to={`${match.url}/rendering`}>
          使用 React 渲染
        </Link>
      </li>
      <li>
        <Link to={`${match.url}/components`}>
          组件
        </Link>
      </li>
      <li>
        <Link to={`${match.url}/props-v-state`}>
          属性 v. 状态
        </Link>
      </li>
    </ul>

    <Route path={`${match.url}/:topicId`} component={Topic}/>
    <Route exact path={match.url} render={() => (
      <h3>请选择一个主题。</h3>
    )}/>
  </div>
)

const Topic = ({ match }) => (
  <div>
    <h3>{match.params.topicId}</h3>
  </div>
)
注:
match(匹配Route加载的组件所获取的一个对象参数)
    isExact: 是否是全等匹配
    params: path正则解析后的值对象
    path: 路由的地址
    url: 与当前location路径名所匹配部分

三、基本概念

(End~)

上一篇 下一篇

猜你喜欢

热点阅读