React路由基础

路由使用步骤

安装

npm i react-router-dom -D

引入并使用:

// 1.引入路由
import { BrowserRouter as Router, Route, Link } from 'react-router-dom'
class Demo extends React.Component {
    render() {
        return (
            // 2.Router包裹整个应用
            <Router>
                <div>
                    路由入口
                    {/* 3.指定路由入口,当作a标签使用 */}
                    <Link to="/First">显示出口组件</Link>
                    {/* 4.指定路由出口(组件2渲染位置) */}
                    <Route path="/First" component={First}></Route>
                </div>
            </Router>
        )
    }
}

class First extends React.Component {
    render() {
        return (
            <div>
                路由出口
            </div>
        )
    }
}
ReactDOM.render(<Demo />, document.getElementById('root'))

编程式导航

主要功能:页面跳转(组件跳转)

// 1.引入路由
import { BrowserRouter as Router, Route, Link } from 'react-router-dom'
class Demo extends React.Component {
    render() {
        return (
            // 2.Router包裹整个应用
            <Router>
                <div>
                    显示路由
                    {/* 3.指定路由入口,当作a标签使用 */}
                    <Link to="/First">显示登录页面</Link>
                    {/* 4.指定路由出口 */}
                    <Route path="/First" component={First}></Route>
                    <Route path="/Two" component={Two}></Route>
                </div>
            </Router>
        )
    }
}

class First extends React.Component {
    // 点击事件通过this.props.history.push('/Two')跳转到Two页面
    handle = ()=> {
        this.props.history.push('/Two')
    }
    render() {
        return (
            <div>
                登陆页面
                {/* 绑定点击事件 */}
                <button onClick={this.handle}>登录</button>
            </div>
        )
    }
}

class Two extends React.Component {
    // 通过this.props.history.go(-1)往回跳转一个页面
    ret = () => {
        // 往回跳转一个页面
        this.props.history.go(-1)
    }
    render() {
        return (
            <div>
                首页
                <button onClick={this.ret}>返回到登陆页面</button>
            </div>
        )
    }
}

// 这里不传入参数
ReactDOM.render(<Demo />, document.getElementById('root'))

简单的默认路由匹配模式:

// 只要path的前缀带有/都会被匹配(模糊匹配)
// 所以点击时,以下两个路由都会被匹配到并展示
<Link to="/First">显示登录页面</Link>

// 默认路由,默认情况下会展示
<Route path="/" component={Two}></Route>
<Route path="/First" component={First}></Route>

// 如果我们不想点击时展示Two默认组件
// 我们就可以使用精准匹配,给Route加上一个exact属性
<Route exact path="/" component={Two}></Route>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

牛仔不当马仔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值