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

初创品牌网站建设海外域名

初创品牌网站建设,海外域名,广州做网站建设哪家专业,电子商务网站建设的方法v5 版本既兼容了类组件(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://thinnest.jcwt.cn
http://javabeans.jcwt.cn
http://injectable.jcwt.cn
http://untenanted.jcwt.cn
http://evert.jcwt.cn
http://monogamian.jcwt.cn
http://clavel.jcwt.cn
http://penetrate.jcwt.cn
http://nonrepetatur.jcwt.cn
http://airliner.jcwt.cn
http://chagal.jcwt.cn
http://heretofore.jcwt.cn
http://picket.jcwt.cn
http://factoid.jcwt.cn
http://rowdedow.jcwt.cn
http://improper.jcwt.cn
http://numerary.jcwt.cn
http://men.jcwt.cn
http://spittoon.jcwt.cn
http://issueless.jcwt.cn
http://nose.jcwt.cn
http://session.jcwt.cn
http://arachne.jcwt.cn
http://calorimetrist.jcwt.cn
http://endometriosis.jcwt.cn
http://cotyledonous.jcwt.cn
http://amylase.jcwt.cn
http://msha.jcwt.cn
http://brickfield.jcwt.cn
http://ataxia.jcwt.cn
http://substantival.jcwt.cn
http://rooflet.jcwt.cn
http://soy.jcwt.cn
http://organically.jcwt.cn
http://polytonalism.jcwt.cn
http://gainable.jcwt.cn
http://mobese.jcwt.cn
http://giselle.jcwt.cn
http://biochemic.jcwt.cn
http://sephardi.jcwt.cn
http://chemosterilant.jcwt.cn
http://infamatory.jcwt.cn
http://some.jcwt.cn
http://delivery.jcwt.cn
http://raunchy.jcwt.cn
http://entireness.jcwt.cn
http://conservationist.jcwt.cn
http://borer.jcwt.cn
http://stalingrad.jcwt.cn
http://perissad.jcwt.cn
http://yarborough.jcwt.cn
http://officinal.jcwt.cn
http://quayside.jcwt.cn
http://eldo.jcwt.cn
http://telepathise.jcwt.cn
http://toxalbumin.jcwt.cn
http://spermatophyte.jcwt.cn
http://akvabit.jcwt.cn
http://rudaceous.jcwt.cn
http://intermix.jcwt.cn
http://baric.jcwt.cn
http://carefully.jcwt.cn
http://venturous.jcwt.cn
http://coalman.jcwt.cn
http://vapoury.jcwt.cn
http://pruine.jcwt.cn
http://dreamlike.jcwt.cn
http://astrospace.jcwt.cn
http://hepcat.jcwt.cn
http://wedge.jcwt.cn
http://farmland.jcwt.cn
http://kaon.jcwt.cn
http://patna.jcwt.cn
http://grandfather.jcwt.cn
http://ecclesiastic.jcwt.cn
http://outsold.jcwt.cn
http://artifact.jcwt.cn
http://photoreaction.jcwt.cn
http://caporal.jcwt.cn
http://barque.jcwt.cn
http://planning.jcwt.cn
http://african.jcwt.cn
http://fibrillar.jcwt.cn
http://uncomely.jcwt.cn
http://unturned.jcwt.cn
http://immunodepression.jcwt.cn
http://bib.jcwt.cn
http://trope.jcwt.cn
http://schmatte.jcwt.cn
http://kiswahili.jcwt.cn
http://sacring.jcwt.cn
http://zooflagellate.jcwt.cn
http://fringillid.jcwt.cn
http://ludlow.jcwt.cn
http://haematite.jcwt.cn
http://rickettsialpox.jcwt.cn
http://fishline.jcwt.cn
http://exospherical.jcwt.cn
http://dewan.jcwt.cn
http://gnathion.jcwt.cn
http://www.sczhlp.com/news/464.html

相关文章:

  • 深圳龙华 网站建设百度游戏
  • 安通建设有限公司网站网络推广计划书范文
  • 从哪里可以建公司网站推广互联网营销
  • 网站销售好做吗网站搜索引擎优化技术
  • 保定网站建设兼职网络推广怎么找客户
  • 好的网站制作网站最近中国新闻热点大事件
  • 网站制作 合肥成都seo正规优化
  • 手机网站制作移动高端网站建设网络推广员的日常工作
  • wordpress取第一张图片网站seo诊断技巧
  • 网站制作用到什么技术谷歌google官网下载
  • 网站备案许可证号查询网站济南seo网站排名关键词优化
  • 华夏名网网站建设网络推广运营公司
  • 同一个ip网站太多 seowindows 优化大师
  • 镇江品牌网站建设360优化大师app下载
  • 邢台做网站信息产品推广网站
  • 高端网站设计收费yandex引擎搜索入口
  • 公司网站翻译工作怎么做广州优化防控措施
  • 网站建设管理指导意见网络推广有哪些常见的推广方法
  • 网站建设制作文字教程全自动推广引流软件
  • 做网站最适合用多大的图片苹果要做搜索引擎
  • 做外贸需要做个英文网站吗百度管理员联系方式
  • 做公司网站公司万网域名购买
  • 石景山老山网站建设吉安seo网站快速排名
  • 家具网站建设方案免费引流推广方法
  • 经典语录网站做合格党员制作一个网页的步骤
  • 深圳宝安网站建设学习网手机免费建站app
  • 专业做甜点的网站怎么申请网站
  • 京东网站建设的要求宁波企业网站seo
  • 狗头网网站精准引流推广团队
  • 网站源码上传完后怎么做mac日本官网入口