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

最简单的网页seo北京

最简单的网页,seo北京,那间公司做网站好,网站开发专业培训学校React 基础巩固(四十一)——手动路由跳转、参数传递及路由配置 一、实现手动跳转路由 利用 useNavigate 封装一个 withRouter#xff08;hoc/with_router.js#xff09; import { useNavigate } from react-router-dom; // 封装一个高阶组件 function withRou…React 基础巩固(四十一)——手动路由跳转、参数传递及路由配置 一、实现手动跳转路由 利用 useNavigate 封装一个 withRouterhoc/with_router.js import { useNavigate } from react-router-dom; // 封装一个高阶组件 function withRouter(WrapperComponent) {return function (props) {const navigate useNavigate();const router { navigate };return WrapperComponent {...props} router{router} /;}; }export default withRouter;添加到hoc/index.js文件中 import withRouter from ./with_router; export { withRouter };利用withRouter拦截Home组件实现手动跳转路由 import React, { PureComponent } from react; import { Link, Outlet } from react-router-dom; import { withRouter } from ../hoc;export class Home extends PureComponent {navigateTo(path) {const { navigate } this.props.router;navigate(path);}render() {return (divh1Home/h1div classNamenavLink to/home/recommend推荐/LinkLink to/home/ranking排行榜/Linkbutton onClick{(e) this.navigateTo(/home/songmenu)}歌单/button/div{/* 占位组件 */}Outlet //div);} }export default withRouter(Home); 二、路由参数传递 路由参数传递包括1.动态路由传参2.查询字符串传参 改造withRouter通过useParams()和useSearchParams()来接收两种参数传递 import {useLocation,useNavigate,useParams,useSearchParams, } from react-router-dom; // 封装一个高阶组件 function withRouter(WrapperComponent) {return function (props) {// 1.导航const navigate useNavigate();// 2.动态路由参数const params useParams();// 3.查询字符串的参数/user?nametestage18const location useLocation();const [searchParams] useSearchParams();const query Object.fromEntries(searchParams)console.log(query);const router { navigate, params, location, query };return WrapperComponent {...props} router{router} /;}; }export default withRouter; 在界面中通过params来接收Detail.js import React, { PureComponent } from react; import { withRouter } from ../hoc;export class Detail extends PureComponent {render() {const { router } this.props;const { params } router;return (divh2Detail/h2h2id:{params.id}/h2/div);} }export default withRouter(Detail); 通过 query 来接收User.jsx import React, { PureComponent } from react; import { withRouter } from ../hoc;export class User extends PureComponent {render() {const { router } this.props;const { query } router;return (divh1用户:{query.name} - {query.age}/h1/div);} }export default withRouter(User); 三、路由配置文件 当前App.jsx文件中包含Routes相关信息过于臃肿我们可以将Routes通过配置的形式进行引入。 构建router/index.js将所有的路由配置在此处: import Home from ../pages/Home; import About from ../pages/About; import Login from ../pages/Login; import NotFound from ../pages/NotFound; import HomeRecommend from ../pages/HomeRecommend; import HomeRanking from ../pages/HomeRanking; import Category from ../pages/Category; import Order from ../pages/Order; import HomeSangMenu from ../pages/HomeSangMenu; import Detail from ../pages/Detail; import User from ../pages/User; import { Navigate } from react-router-dom;const routes [{path: /,element: Navigate to/home /,},{path: /home,element: Home /,children: [{path: /home,element: Navigate to/home/recommend /,},{path: /home/recommend,element: HomeRecommend /,},{path: /home/ranking,element: HomeRanking /,},{path: /home/sangmenu,element: HomeSangMenu /,},],},{path: /about,element: About /,},{path: /login,element: Login /,},{path: /category,element: Category /,},{path: /order,element: Order /,},{path: /detail,element: Detail /,},{path: /user,element: User /,},{path: *,element: NotFound /,}, ]; export default routes; 改写App.jsx通过useRoutes(routes)引入路由 import React from react; import {Link,NavLink,useNavigate,useRoutes, } from react-router-dom; import ./style.css; // import Home from ./pages/Home; // import About from ./pages/About; // import Login from ./pages/Login; // import NotFound from ./pages/NotFound; // import HomeRecommend from ./pages/HomeRecommend; // import HomeRanking from ./pages/HomeRanking; // import Category from ./pages/Category; // import Order from ./pages/Order; // import HomeSangMenu from ./pages/HomeSangMenu; // import Detail from ./pages/Detail; // import User from ./pages/User; import routes from ./router;export function App(props) {const navigate useNavigate();function navigateTo(path) {console.log(path);navigate(path);}return (div classNameappdiv classNameheaderspanheader/spandiv classNamenavNavLink to/home首页/NavLinkNavLink to/about关于/NavLinkNavLink to/login登陆/NavLinkbutton onClick{(e) navigateTo(/category)}分类/buttonspan onClick{(e) navigateTo(/order )}订单/spanLink to/user?nametestage18用户/Link/divhr //divdiv classNamecontent{/* 映射关系 path Component */}{/* RoutesRoute path/ element{Navigate to/home /} /Route path/home element{Home /}Route path/home element{Navigate to/home/recommend /} /Route path/home/recommend element{HomeRecommend /} /Route path/home/ranking element{HomeRanking /} /Route path/home/songmenu element{HomeSangMenu /} //RouteRoute path/about element{About /} /Route path/login element{Login /} /Route path/category element{Category /} /Route path/order element{Order /} /Route path/detail/:id element{Detail /} /Route path/user element{User /} /Route path* element{NotFound /} //Routes */}{useRoutes(routes)}/divdiv classNamefooterFooter/div/div); }export default App; 查看运行效果与之前保持一致 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AByH8LHr-1690721021332)(https://gitee.com/outmanm78/markdown-image/raw/master/img/202307302029353.png)] 虽然成功抽离了路由配置信息但是目前的方式会导致路由统一打包没有分包处理。我们可以进行改造一下针对部分配置进行分包处理实现路由懒加载 import React from react; import Home from ../pages/Home; // import About from ../pages/About; // import Login from ../pages/Login; import NotFound from ../pages/NotFound; import HomeRecommend from ../pages/HomeRecommend; import HomeRanking from ../pages/HomeRanking; import Category from ../pages/Category; import Order from ../pages/Order; import HomeSangMenu from ../pages/HomeSangMenu; import Detail from ../pages/Detail; import User from ../pages/User; import { Navigate } from react-router-dom;// 通过React.lazy实现About和Login界面的路由懒加载 const About React.lazy(() import(../pages/About)); const Login React.lazy(() import(../pages/Login));在src/index.js中用Suspense对App进行包裹实现对分包加载的等待 import React, { Suspense } from react; import ReactDOM from react-dom/client; import App from ./App; import { HashRouter } from react-router-dom;const root ReactDOM.createRoot(document.getElementById(root)); root.render(React.StrictModeHashRouterSuspense fallback{h3Loading.../h3}App //Suspense/HashRouter/React.StrictMode ); 查看效果与之前保持一致懒加载实现成功
文章转载自:
http://www.morning.yuanshenglan.com.gov.cn.yuanshenglan.com
http://www.morning.ffbl.cn.gov.cn.ffbl.cn
http://www.morning.mxdiy.com.gov.cn.mxdiy.com
http://www.morning.wbns.cn.gov.cn.wbns.cn
http://www.morning.rlcqx.cn.gov.cn.rlcqx.cn
http://www.morning.xjmyq.com.gov.cn.xjmyq.com
http://www.morning.rxfjg.cn.gov.cn.rxfjg.cn
http://www.morning.gthgf.cn.gov.cn.gthgf.cn
http://www.morning.xrpwk.cn.gov.cn.xrpwk.cn
http://www.morning.ghfrb.cn.gov.cn.ghfrb.cn
http://www.morning.pphbn.cn.gov.cn.pphbn.cn
http://www.morning.xbmwm.cn.gov.cn.xbmwm.cn
http://www.morning.mnlk.cn.gov.cn.mnlk.cn
http://www.morning.skdhm.cn.gov.cn.skdhm.cn
http://www.morning.qyjqj.cn.gov.cn.qyjqj.cn
http://www.morning.jbhhj.cn.gov.cn.jbhhj.cn
http://www.morning.fpbj.cn.gov.cn.fpbj.cn
http://www.morning.mwwnz.cn.gov.cn.mwwnz.cn
http://www.morning.qpnmd.cn.gov.cn.qpnmd.cn
http://www.morning.zqcsj.cn.gov.cn.zqcsj.cn
http://www.morning.qlpq.cn.gov.cn.qlpq.cn
http://www.morning.pljxz.cn.gov.cn.pljxz.cn
http://www.morning.jfmjq.cn.gov.cn.jfmjq.cn
http://www.morning.rccpl.cn.gov.cn.rccpl.cn
http://www.morning.cbndj.cn.gov.cn.cbndj.cn
http://www.morning.qbfwb.cn.gov.cn.qbfwb.cn
http://www.morning.wcyr.cn.gov.cn.wcyr.cn
http://www.morning.mszwg.cn.gov.cn.mszwg.cn
http://www.morning.ntyks.cn.gov.cn.ntyks.cn
http://www.morning.bbgr.cn.gov.cn.bbgr.cn
http://www.morning.mbmh.cn.gov.cn.mbmh.cn
http://www.morning.zdsqb.cn.gov.cn.zdsqb.cn
http://www.morning.cwtrl.cn.gov.cn.cwtrl.cn
http://www.morning.pdxqk.cn.gov.cn.pdxqk.cn
http://www.morning.gxfzrb.com.gov.cn.gxfzrb.com
http://www.morning.blfll.cn.gov.cn.blfll.cn
http://www.morning.qcdtzk.cn.gov.cn.qcdtzk.cn
http://www.morning.nqbpz.cn.gov.cn.nqbpz.cn
http://www.morning.sphft.cn.gov.cn.sphft.cn
http://www.morning.qkqhr.cn.gov.cn.qkqhr.cn
http://www.morning.gydth.cn.gov.cn.gydth.cn
http://www.morning.cszbj.cn.gov.cn.cszbj.cn
http://www.morning.xqcgb.cn.gov.cn.xqcgb.cn
http://www.morning.srbfz.cn.gov.cn.srbfz.cn
http://www.morning.jqjnl.cn.gov.cn.jqjnl.cn
http://www.morning.tkchg.cn.gov.cn.tkchg.cn
http://www.morning.ckhyj.cn.gov.cn.ckhyj.cn
http://www.morning.080203.cn.gov.cn.080203.cn
http://www.morning.gklxm.cn.gov.cn.gklxm.cn
http://www.morning.ngqty.cn.gov.cn.ngqty.cn
http://www.morning.srhqm.cn.gov.cn.srhqm.cn
http://www.morning.xoaz.cn.gov.cn.xoaz.cn
http://www.morning.dbylp.cn.gov.cn.dbylp.cn
http://www.morning.rqjxc.cn.gov.cn.rqjxc.cn
http://www.morning.drjll.cn.gov.cn.drjll.cn
http://www.morning.nhgkm.cn.gov.cn.nhgkm.cn
http://www.morning.wpjst.cn.gov.cn.wpjst.cn
http://www.morning.jgmlb.cn.gov.cn.jgmlb.cn
http://www.morning.qnzld.cn.gov.cn.qnzld.cn
http://www.morning.nqpxs.cn.gov.cn.nqpxs.cn
http://www.morning.rzmsl.cn.gov.cn.rzmsl.cn
http://www.morning.knscf.cn.gov.cn.knscf.cn
http://www.morning.wdhlc.cn.gov.cn.wdhlc.cn
http://www.morning.lanyee.com.cn.gov.cn.lanyee.com.cn
http://www.morning.lcxzg.cn.gov.cn.lcxzg.cn
http://www.morning.xbdd.cn.gov.cn.xbdd.cn
http://www.morning.cxsdl.cn.gov.cn.cxsdl.cn
http://www.morning.ybgcn.cn.gov.cn.ybgcn.cn
http://www.morning.kfwqd.cn.gov.cn.kfwqd.cn
http://www.morning.fmjzl.cn.gov.cn.fmjzl.cn
http://www.morning.qtsks.cn.gov.cn.qtsks.cn
http://www.morning.tbcfj.cn.gov.cn.tbcfj.cn
http://www.morning.addai.cn.gov.cn.addai.cn
http://www.morning.kpbn.cn.gov.cn.kpbn.cn
http://www.morning.mjxgs.cn.gov.cn.mjxgs.cn
http://www.morning.pszw.cn.gov.cn.pszw.cn
http://www.morning.haolipu.com.gov.cn.haolipu.com
http://www.morning.yxwrr.cn.gov.cn.yxwrr.cn
http://www.morning.tqpnf.cn.gov.cn.tqpnf.cn
http://www.morning.btpzn.cn.gov.cn.btpzn.cn
http://www.tj-hxxt.cn/news/259039.html

相关文章:

  • 文件夹里内容做网站的分类山东网站制作策划
  • 自己做网站能宣传自己的产品吗门户网站建设策划
  • seo站长网家庭电脑可以做网站吗
  • 泰安网网站建设环保组织的相关信息
  • 一个网站需要多长时间如何创建刷单网站
  • 网站开发什么意思网站恢复正常
  • 网站关键词优化办法企管宝app下载
  • 哪些有名网站是用php做的怎么建设58同城网站
  • 南宁一站网网络技术有限公司沈阳军成网站建设
  • 怎么做好网站运营国际4a广告公司排名
  • 专业模板建站价格深圳网站建设智能 乐云践新
  • 太原免费网站建站模板网站留言板 html
  • 开封公司做网站缓存 wordpress 加速
  • 网站建设的主要观点网站设计作业多少钱
  • 江门恒阳网站建设湖北省和城乡建设厅官方网站
  • 哈尔滨做网站电话怎么做网站记者
  • 一个女装店网站建设的策划模板专注微信网站建设
  • 安徽教育机构网站建设怎么查询网站是哪家公司做的
  • 中山网站软件wordpress comments_popup_link
  • 辽宁省城乡建设厅官方网站说做网站被收债
  • 免费php开源企业网站网站页面设计欣赏
  • 做免费采集电影网站犯法吗wordpress股市实时数据
  • 微网站制作网站开发团购网站 如何做推广
  • 如何组建网站重?c网站开发
  • asp做网站大气的门户网站
  • 怎么在手机上制作网站wordpress 添加用户
  • 推荐设计网站舆情分析师招聘
  • 有域名如何做免费网站国外网站排行榜
  • 建行手机网站可以在手机上编程的软件
  • 学到什么程度可以做网站新网网站后台登陆