码迷,mamicode.com
首页 > 其他好文 > 详细

react-router 4 的使用

时间:2018-02-05 23:21:39      阅读:369      评论:0      收藏:0      [点我收藏+]

标签:nts   turn   out   路由规则   启动   ons   dom   安装   span   

 

一、安装 react-router 4

cnpm i react-router-dom --save

 

二、项目中导入react-router-dom 模块

import { HashRouter, Route, Link } from ‘react-router-dom‘
1. HashRouter 表示一个路由的根容器,以后所有路由相关的内容,都需要包裹在 HashRouter 内部,整个网站中,只需要使用一次 HashRouter 就可以
2. Route 表示一个路由规则,它有两个重要的属性: path 与 component
3. Link 表示一个路由链接,link 中有一个 to 属性,代表以后要跳转的路径。
 
三、基础测试Demo:
import React from ‘react‘;
import ReactDOM from ‘react-dom‘;
import { HashRouter, Route, Link } from "react-router-dom";

// 导入根组件
import Home from "./components/Home.jsx";
import About from "./components/About.jsx";
import Movie from "./components/Movie.jsx";

export default class App extends React.Component {
    constructor(props){
        super(props);

        this.state = {}
    }

    render() {
        // 使用 HashRouter 把 App 根组件元素包裹起来后,表示网站已经启动路由
        // 一个网站中,只需使用一次 HashRouter 即可
        return <HashRouter>
            {/* 在一个 HashRouter 中只能有一个根元素*/}
            <div>
                <h1>网站项目根目录</h1>
                <hr/>
                <Link to="/home">首页</Link> &nbsp;&nbsp;
                <Link to="/movie">电影</Link> &nbsp;&nbsp;
                <Link to="/about">关于</Link>
                <hr/>
                {/* 
                    Router 创建的标签,就是路由的规则,
                        path:表示要匹配的路由
                        component 表示当前要展示的子组件
                    Rouer 的作用
                        1、表示一个路由规则
                        2、当作占位符,将来匹配到的组件要放到现在的位置
                */}
                <Route path="/home" component={ Home }></Route>
                <Route path="/movie" component={ Movie }></Route>
                <Route path="/about" component={ About }></Route>
            </div>
            </HashRouter>
    }
}

 

四、匹配路由参数

return <HashRouter>
            {/* 在一个 HashRouter 中只能有一个根元素*/}
            <div>
                <h1>网站项目根目录</h1>
                <hr/>
                <Link to="/home">首页</Link> &nbsp;&nbsp;
                <Link to="/movie/hot/110">电影</Link> &nbsp;&nbsp;
                <Link to="/about">关于</Link>
                <hr/>
          <Route path="/home" component={ Home }></Route> {/* 默认情况下,路由中的规则是模糊匹配的。如果匹配成功,就会展示这个路由对应俄组件 如果要匹配参数,可以在匹配规则中,使用 : 修饰符,表示这个位置匹配到的是参数 如果想让路由规则精确匹配,需要为为 route 添加 exact 属性,表示启动精确匹配 */} <Route path="/movie/:name/:num" component={ Movie } exact></Route> <Route path="/about" component={ About }></Route> </div> </HashRouter>

 五、获取路由参数this.props.match.params.name

import React from ‘react‘;

export default class Movie extends React.Component {
    constructor(props) {
        super(props);
        this.state = {}
    }
    render() {
        return <div>
            {/* 要从路由规则中提取匹配到的参数,可以使用 this.props.match.params.**来访问 */}
            <h1>电影 - { this.props.match.params.name } - { this.props.match.params.num }</h1>
        </div>
    }
}

 

react-router 4 的使用

标签:nts   turn   out   路由规则   启动   ons   dom   安装   span   

原文地址:https://www.cnblogs.com/guashi/p/8419335.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!