React中使用路由

先来看VUE里面怎么使用路由

Vue中的路由怎么使用:
1: cnpm i vue-router -S
2:创建路由的实例对象 const router= new VueRouter({routes:[]}) 【创建路由规则】
3:将new出来的 路由实例对象,挂载到VM的router属性上
4:在对应的组件中,使用 创建路由连接
5:在页面上放一个 【路由组件的容器】

总结:如果在框架中,要使用路由,一定要有 【路由规则,路由链接,呈现路由组件的容器】


React中使用路由:
1:运行cnpm i react-router-dom -S 安装依赖项

2:创建一个App.jsx根组件, 并在根组件中, 按需导入路由需要的三个组件
//Link 是路由链接
//Router是路由的规则
//HashRouter 表示路由的包裹容器; 在一个项目中, 只需要使用唯一的一次

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

3: 在App.jsx中,render函数中, 最外层使用 HashRouter进行包裹

注意:HashRouter 必须用作 App 根组件最外层的元素
HashRouter 内部, 只允许放唯一一个元素 所以你想放多个的话外面要包一个div标签

render(){
 return <HashRouter> 
     <div>
<h1>大标题</h1>
    </di>
</HashRouter> 
}

4:在 需要的地方, 使用Link组件创建路由链接,其中, 通过to属性指定路由地址

<Link to="/home"></Link>

5:使用Route组件创建路由规则,同时注意:Route组件有两个身份: (path component)
1.路由规则
2.占位符(用来显示匹配到的组件)

import Home from ‘./components/Home.jsx’

Route有两个身份:

1:代表一个路由规则 2:表示一个路由匹配到的组件呈现的容器
1: path 表示要匹配的路由规则
2:component表示要展示的组件
3:exact精确匹配路由
注意:如果Route不设置 exact属性, 则默认为 模糊匹配的路由规则

路由获取参数:

路由中如果要获取参数,则需要使用 this.props.match.params.***

编程式导航:

通过 this.props.history对象提供的方法, 可以实现编程式导航:
1:this.props.history.go(n)前进或后退N个历史记录
2:this.props.history.goBack()后退一个历史记录
3:this.props.history.goForward()前进一个历史记录
4:this.props.history.push(‘url地址’) 跳转到哪个路由超链接中去


路由重定向:

1:按需导入 Redirect组件
import {HashRouter,Route,Link,Redirect} from ‘react-router-dom’

2:新建一个 路由规则
<Route exact path="/" render={() => } >
其中 exact 属性表示 精确匹配
path 表示 重定向之前的 路由规则
render 是一个函数,必须 为 render 属性绑定一个 function ,因此最佳实践 是提供一个 箭头函数
// 在 提供的 箭头函数中,需要return 一个组件, 其中, to属性为 重定向的路由

Switch 作用:
就是从上到下,依次匹配, 如果有一个成功了,就不会继续往下匹配了。
路由的特殊性: 参数越多 特殊性越低
如果路由规则,被Switch包裹了,则特殊性应该从高到底

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值