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 个人博客 所有,欢迎分享本文,转载请保留出处,谢谢!

相关文章
|
2月前
|
前端开发 JavaScript
React项目路由懒加载lazy、Suspense,使第一次打开项目页面变快
本文介绍了在React项目中实现路由懒加载的方法,使用React提供的`lazy`和`Suspense`来优化项目首次加载的速度。通过将路由组件改为懒加载的方式,可以显著减少初始包的大小,从而加快首次加载速度。文章还展示了如何使用`Suspense`组件包裹`Switch`来实现懒加载过程中的fallback效果,并提供了使用前后的加载时间对比,说明了懒加载对性能的提升作用。
171 2
React项目路由懒加载lazy、Suspense,使第一次打开项目页面变快
|
13天前
|
前端开发 API UED
React 路由守卫 Guarded Routes
【10月更文挑战第26天】本文介绍了 React 中的路由守卫(Guarded Routes),使用 `react-router-dom` 实现权限验证、登录验证和数据预加载等场景。通过创建 `AuthContext` 管理认证状态,实现 `PrivateRoute` 组件进行路由保护,并在 `App.js` 中使用。文章还讨论了常见问题和易错点,提供了处理异步操作的示例,帮助开发者提升应用的安全性和用户体验。
30 1
|
25天前
|
前端开发 JavaScript
React学习之——条件渲染
【10月更文挑战第16天】React 中没有像Vue中v-if这种指令。React 中的条件渲染和 JavaScript 中的一样,使用 JavaScript 运算符 if 或者条件运算符去创建元素来表现当前的状态,然后让 React 根据它们来更新 UI。
|
2月前
|
前端开发 JavaScript
学习react基础(3)_setState、state、jsx、使用ref的几种形式
本文探讨了React中this.setState和this.state的区别,以及React的核心概念,包括核心库的使用、JSX语法、类与函数组件的区别、事件处理和ref的使用。
66 3
学习react基础(3)_setState、state、jsx、使用ref的几种形式
|
2月前
|
前端开发
学习react基础(2)_props、state和style的使用
本文介绍了React中组件间数据传递的方式,包括props和state的使用,以及如何在React组件中使用style样式。
33 0
|
16天前
|
前端开发 安全 网络安全
React——路由Route
React——路由Route
27 2
React——路由Route
|
30天前
|
资源调度 前端开发 测试技术
React Router 路由管理
【10月更文挑战第10天】本文介绍了 React Router,一个在 React 应用中管理路由的强大工具。内容涵盖基本概念、安装与使用方法、常见问题及解决方案,如路由嵌套、动态路由和路由守卫等,并提供代码示例。通过学习本文,开发者可以更高效地使用 React Router,提升应用的导航体验和安全性。
188 19
|
16天前
|
前端开发 JavaScript 安全
学习如何为 React 组件编写测试:
学习如何为 React 组件编写测试:
33 2
|
1月前
|
前端开发 网络架构
React 路由
10月更文挑战第11天
33 2
|
1月前
|
资源调度 前端开发 JavaScript
React进阶学习
React进阶学习
11 1