当前位置: 首页 > news >正文

广东湛江免费做网站百度云在线登录

广东湛江免费做网站,百度云在线登录,湖南长沙seo教育,东莞网站建设vipbaikev5 版本既兼容了类组件(react v16.8前),又兼容了函数组件(react v16.8及以后,即hook)。v6 文档把路由组件默认接受的三个属性给移除了,若仍然使用 this.props.history.push(),此时pr…
  1. v5 版本既兼容了类组件(react v16.8前),又兼容了函数组件(react v16.8及以后,即hook)。
  2. v6 文档把路由组件默认接受的三个属性给移除了,若仍然使用 this.props.history.push(),此时props会提示空值。官方文档给出的解决方案是使用 useNavigate() 这个hook,但是 hook 只能存在于函数组件,无法用在类组件中。
  3. 使用类组件进行项目开发的,建议react-router-dom使用v5及以前的版本。如果使用函数组件开发,建议使用最新的v6版本。

文章目录

      • 1.在类组件中的用法
        • 1.1 路由跳转
        • 1.2 路由返回
        • 1.3 携带参数
          • 1.3.1 state 属性携带参数
          • 1.3.2 search 属性携带参数
          • 1.3.3 路由传参 携带参数
      • 2.在函数组件中的用法
        • 2.1 路由跳转
        • 2.2 路由返回
        • 2.3 携带参数
          • 2.3.1 state 属性携带参数
          • 2.3.2 search 属性携带参数
          • 2.3.3 路由传参 携带参数
      • 3.总结
        • 3.1 3.1 router.js 路由文件中
        • 3.2 路由跳转、传参

1.在类组件中的用法

import React from "react";
import { Router, Route, Switch, Redirect, HashRouter } from "react-router-dom";
import { createHashHistory } from "history";
...const route = () => (<HashRouter><Switch>{/* 重定向不可放在首行 */}{/* <Redirect path="*" to="/" /> */}<Route exact path="/" component={Home} /><Route exact path="/listPage" component={ListPage} /><Route exact path="/detailPage/:id" component={DetailPage} />{/* 其他匹配重定向 */}<Redirect path="*" to="/" /></Switch></HashRouter>
);export default route;

注意: 和 的区别 ==> 似乎没有区别

1.1 路由跳转
this.props.history.push('/listPage'): 路由入栈
this.props.history.replace('/listPage'):路由替换
1.2 路由返回
this.props.history.goBack(): 返回上一级路由
1.3 携带参数
1.3.1 state 属性携带参数

http://localhost:3000/#/listPage

this.props.history.push({pathname: '/listPage',state: {aaa: 123},
});
// 跳转后新页面 通过 this.props.history.location.state 获取
// http://localhost:3000/#/listPage
1.3.2 search 属性携带参数

·http://localhost:3000/#/listPage?bbb=456

this.props.history.push({pathname: '/listPage',search: '?bbb=456',
});
// 跳转后新页面 通过 this.props.history.location.search 获取
// url: http://localhost:3000/#/listPage?bbb=456
1.3.3 路由传参 携带参数

http://localhost:3000/#/detailPage/789

this.props.history.push({pathname: '/detailPage' + '/' + id,
});
// 需要router.js 中路由配合: <Route exact path="/detailPage/:id" component={DetailPage} />
// 跳转后新页面 通过this.props.match.params.id 获取
// url: http://localhost:3000/#/detailPage/789

2.在函数组件中的用法

import React from "react";
import { HashRouter, Route, Routes, Navigate } from "react-router-dom";
...const route = () => (<HashRouter><Routes><Route exact path="/" element={<Home />} /><Route exact path="/listPage" element={<ListPage />} /><Route exact path="/detailPage/:id" element={<DetailPage />} /><Route exact path="*" element={<Navigate to="/" />} />{/* <Route exact path="*" element={<NotFound />} /> */}</Routes></HashRouter>
);export default route;
  1. Routes 替换了 Switch。
  2. Route中 element 替换了 component/render 属性,且值是组件,而非组件名。
  3. Navigate 组件替换了 Redirect。
2.1 路由跳转
 import { useNavigate } from 'react-router-dom';const navigate = useNavigate();// pushnavigate(path);// replacenavigate(path, {replace: true});
2.2 路由返回
 const navigate = useNavigate();// go backnavigate(-1);
2.3 携带参数
2.3.1 state 属性携带参数

http://localhost:3000/#/listPage

 const navigate = useNavigate();navigate('/listPage', {state: {aaa: '123',}})// url: http://localhost:3000/#/listPage
2.3.2 search 属性携带参数

http://localhost:3000/#/listPage?bbb=456

 const navigate = useNavigate();navigate('/listPage' + '?bbb=456')// url: http://localhost:3000/#/listPage?bbb=456
2.3.3 路由传参 携带参数

http://localhost:3000/#/listPage/456

 const navigate = useNavigate();navigate('/detailPage' + '/' + id)
// 需要router.js 中路由配合: <Route exact path="/detailPage/:id" element={<DetailPage />} />
// 跳转后新页面 通过 const { id } = useParams(); 获取,其中useParams 为 react-router-dom 内方法
// url: http://localhost:3000/#/detailPage/789

3.总结

3.1 3.1 router.js 路由文件中
  1. Switch 改用 Routes
  2. component/render 属性 改为 element
    <Route exact path="/listPage" element={<ListPage />} />
  3. Redirect 改用 Navigate
    <Route exact path="*" element={<Navigate to="/" />} />
3.2 路由跳转、传参
  1. history.push(path) 改为 navigate(path)
  2. history.replace(path) 改为 navigate(path, {replace: true})
  3. history.goBack() 改为 navigate(-1)
  4. v5 中的 hook 使用比较:
    -v5: 使用 useHistory 的 history.push()
    -v6: 使用 useNavigate 的 navigate()
http://www.dinnco.com/news/50465.html

相关文章:

  • 互联网金融网站设计站长之家网站排名
  • 专业做网站设计的公司免费b站推广网站短视频
  • aspnet网站开发视频电商运营推广
  • 陕西住房建设厅考试官方网站百度竞价推广方法
  • 做网站没有公网新人学会seo
  • 网站导航优化今日新闻最新10条
  • 比较还做的调查网站重庆seo搜索引擎优化优与略
  • h5网站开发多少钱熊猫关键词挖掘工具
  • 专做视频素材的网站网站模板之家官网
  • 官网网站建设需求文档搜什么关键词能找到网站
  • 福州网站设计哪里好百度app营销软件
  • 江苏赛华建设监理有限公司网站全网推广推荐
  • 集团公司网站开发seo要点
  • 网站设计与规划作业网站维护需要学什么
  • 合肥微网站制作苏州百度 seo
  • 石家庄求职信息网茂名seo顾问服务
  • 专业建设网站百度一下你就知道下载
  • 怎么做qq刷会员的网站国内免费域名注册
  • 用商城系统做教育网站站长工具网
  • 杭州滨江区建设局网站seo工作流程
  • 龙华做手机网站建设大连seo网站推广
  • 网站域名出售郑州网站推广排名公司
  • 网站背景音乐怎么做企业培训的目的和意义
  • 建设通官方网站大数据精准营销获客
  • 唐山百度做网站多少钱百度识图搜索网页版
  • 培训机构的网站建设东莞网站建设做网站
  • 网站开发行业工作交接交接哪些微网站
  • 学院网站建设规划网店seo关键词
  • 网页传奇辅助seo信息是什么
  • o2o网站建设方案讲解seo外链是什么意思