React路由学习

简介: React路由学习

1.安装react-router-dom
$ npm i react-router-dom --save
复制代码
2.在页面进行引入
import {BrowserRouter as Router,Route,Link} from 'react-router-dom'
复制代码
3.编写两个无状态的路由组件
// 声明路由组件 一个func 相当于是一个路由组件

// 这里是无状态路由的写法 实际工作中会把路由组件单独的写成一个js来进行引入

function Index (){

 return <h2>Jspang.com</h2>

}
function List (){

 return <h2>List-page</h2>

}
复制代码
4.创建控制路由的组件
function AppRouter (){

return(
    <Router>
        <ul>
            {/* Link 为路由的跳转 类似于a标签 */}
            <li><Link to='/'>首页</Link></li>
        </ul>

        {/* exact 为精准定位 必须为/ 才能进行匹配 
            Route 为路径的指引
            component 为上面绑定的组件
            path 为路径
        */}
        <Route path="/" exact component = {Index} />
        {/* :id 设置规则 不传不跳转 */}
        <Route path="/list/:id"  component = {List} />
        <Route path="/home/"  component = {Home} />
    </Router>
)

}
// 暴露出去
export default AppRouter;
复制代码
路由的URL传参
1.在路由指引组件上声明传参规则,不传则不会跳转

复制代码
2.在跳转过来的页面接收值
// 在生命周期中接收 路由传递的值

componentDidMount(){
let ReadID = this.props.match.params.id

    console.log(ReadID)

}
复制代码
3.重新设置state的值可以在声明周期中使用this.setState({}),前提是设置的数据需要在state中声明好
4.路由的重定向 引入RediRect
import {Link,Redirect } from 'react-router-dom'
编程式重定向
this.props.history.push('/home/')
标签重定向 在render最外层标签中写入

复制代码
路由的嵌套
1.在子路由中建立孙路由直接引入即可
2.根据后台返回的数组来动态渲染路由
模拟一组数据

let routeConfig =[
    {path:'/',title:'博客首页',exact:true,component:Index},
    {path:'/video/',title:'视频教程',exact:false,component:Video},
    {path:'/work/',title:'职场技能',exact:false,component:Work}
  ]
return(
    <Router>
        <div className="mainDiv">
            <div className="leftNav">
                <h3>一级导航</h3>
                <ul>
                    {
                        routeConfig.map((item,index)=>{
                            return (
                                <li key={index}>
                                    <Link to={item.path}>{item.title}</Link>
                                </li>
                            )
                        })
                    }
                </ul>
            </div>
        </div>

        <div className="rightMain">
            {
                routeConfig.map((item,index)=>{
                    return (
                        <Route path={item.path}  
                               exact={item.exact} 
                               component={item.component} />
                    )
                })
            }
        </div>
    </Router>

复制代码

作者: Bill 本文地址: http://biaoblog.cn/info?id=1573027260000

版权声明: 本文为原创文章,版权归 biaoblog 个人博客 所有,欢迎分享本文,转载请保留出处,谢谢!

相关文章
|
3月前
|
前端开发 API UED
怎么学习React 18 进行项目开发?
【4月更文挑战第18天】学习React 18涉及新特性如并发模式、Suspense API和自动批处理更新,可提升性能和用户体验。首先了解这些新特性,然后掌握React基础知识,如组件化、JSX、props和state。使用Create React App创建项目,学习如何启用并发模式和使用Suspense显示占位符。实现自定义组件,关注props传递、状态管理和事件处理。通过Profiler优化性能,利用懒加载和代码分割减少加载时间,使用Context API共享状态。不断实践和探索,参考官方文档与社区资源,以提高开发技能。
136 3
|
3月前
|
前端开发 JavaScript API
如何学习react
【4月更文挑战第9天】 学习React前,需掌握JavaScript基础,了解React的JSX、组件、props、state和生命周期等概念。安装Node.js和npm,用Create React App搭建环境。学习核心API,如React.createElement、React.render等,并阅读官方文档。实践项目,从Todo List开始,逐渐挑战复杂应用。同时,学习相关技术如Redux、React Router,并参与社区交流,持续关注React新发展。持之以恒,祝学习顺利!
41 10
|
10天前
|
移动开发 资源调度 前端开发
介绍React路由模式
【8月更文挑战第10天】介绍React路由模式
35 12
|
3月前
|
前端开发 JavaScript
react学习(Effect)
react学习(Effect)
40 3
|
3月前
|
前端开发 JavaScript
React和Vue实现路由懒加载
React和Vue实现路由懒加载
61 2
|
8天前
|
移动开发 前端开发 API
React路由和HTML5 History API有什么区别
【8月更文挑战第11天】React路由和HTML5 History API有什么区别
17 1
|
1天前
|
前端开发 JavaScript 算法
React Server Component 使用问题之想在路由切换时保持客户端状态,如何实现
React Server Component 使用问题之想在路由切换时保持客户端状态,如何实现
|
1天前
|
前端开发 JavaScript PHP
React Server Component 使用问题之路由的能力,如何实现
React Server Component 使用问题之路由的能力,如何实现
|
11天前
|
前端开发 JavaScript 算法
如何学习react原理
【8月更文挑战第9天】 如何学习react原理
28 6
|
8天前
|
移动开发 前端开发 JavaScript
react路由实现原理
【8月更文挑战第11天】react路由实现原理
17 1