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

企业网站 带后台南京seo公司哪家好

企业网站 带后台,南京seo公司哪家好,服装设计是冷门专业吗,郑州网站优化渠道手写一个简化版本的 React Router#xff0c;主要实现其核心功能#xff0c;包括路由配置、路径匹配和导航。 这个简化版本将包括以下组件和函数#xff1a; 1. BrowserRouter 2. Routes 和 Route 3. Link 4. useRoutes 5. useParams 1. 基本框架和组件 1.1. Browse…手写一个简化版本的 React Router主要实现其核心功能包括路由配置、路径匹配和导航。 这个简化版本将包括以下组件和函数 1. BrowserRouter 2. Routes 和 Route 3. Link 4. useRoutes 5. useParams 1. 基本框架和组件 1.1. BrowserRouter BrowserRouter 组件使用 HTML5 History API并为应用提供路由上下文。 import React, { useState, useEffect, createContext, useContext } from react;const RouterContext createContext();function BrowserRouter({ children }) {const [location, setLocation] useState(window.location.pathname);useEffect(() {const handlePopState () setLocation(window.location.pathname);window.addEventListener(popstate, handlePopState);return () window.removeEventListener(popstate, handlePopState);}, []);const navigate (to) {window.history.pushState({}, , to);setLocation(to);};return (RouterContext.Provider value{{ location, navigate }}{children}/RouterContext.Provider); } 1.2. Routes 和 Route Routes 组件遍历所有子路由并匹配当前路径Route 组件定义路径和对应的组件。 function Routes({ children }) {const { location } useContext(RouterContext);let element;React.Children.forEach(children, (child) {if (!element React.isValidElement(child) matchPath(child.props.path, location)) {element child;}});return element; }function Route({ path, element }) {return element; } 1.3. Link Link 组件用于导航。 function Link({ to, children }) {const { navigate } useContext(RouterContext);const handleClick (event) {event.preventDefault();navigate(to);};return a href{to} onClick{handleClick}{children}/a; } 1.4. useRoutes useRoutes 是一个 hook用于在函数组件中使用路由。 function useRoutes(routes) {const { location } useContext(RouterContext);for (let route of routes) {if (matchPath(route.path, location)) {return route.element;}}return null; } 1.5. useParams useParams 是一个 hook用于获取路径参数。 function useParams() {const { location } useContext(RouterContext);const path location;const match path.match(/\/([^\/])\/?/);return match ? { id: match[1] } : {}; } 2. 路径匹配函数 matchPath 用于检查路径是否匹配。 function matchPath(pattern, pathname) {const regex new RegExp(^${pattern.replace(/:\w/g, ([^/]))}$);return regex.test(pathname); } 3. 示例应用 基础定义完成我们在 React 中使用一下这个 router 。 import React from react; import ReactDOM from react-dom;function Home() {return h2Home/h2; }function About() {return h2About/h2; }function User() {const { id } useParams();return h2User ID: {id}/h2; }function App() {return (BrowserRouternavLink to/Home/LinkLink to/aboutAbout/LinkLink to/user/1User 1/Link/navRoutesRoute path/ element{Home /} /Route path/about element{About /} /Route path/user/:id element{User /} //Routes/BrowserRouter); }ReactDOM.render(App /, document.getElementById(root)); 这个简化版的 React Router主要实现其核心功能包括路由配置、路径匹配和导航。省略了很多边缘情况和优化从本例中可以窥见 react-router 框架整体实现最核心的思路。 4. 补充资料 官方文档React Router Official Documentation react-router-dom 多类型历史https://github.com/remix-run/react-router/blob/acc2b94088835d1247bdf3a3f883f74cc3570a0/packages/react-router-dom/index.tsx#L262 wouter: https://github.com/molefrog/wouter tanstack/routerTanStack Router 浏览器历史记录协议History API - Web APIs | MDN
http://www.dnsts.com.cn/news/172713.html

相关文章:

  • 网上做网站网站代理wordpress 顶部美化
  • 网站备案太慢微信网站制作北京
  • 网站开发 问题解决wordpress图片热点链接
  • 购物网站 缓存网站框架怎么做的
  • 怀来住房和城乡建设局网站asp装修网站源码
  • 郑州网站建设动态企业只有建立自己的网站
  • 住房和城乡建设部网站倪虹深圳有几家燃气公司
  • 关于网站建设项目的投诉函百度站长app
  • 网站外链发布平台个人网站做什么内容好
  • 网站内容的特点软件开发工程师任职要求
  • 网站app怎么做崇文门网站建设
  • 贵阳建立网站网站规划的流程
  • 上海网站建设宣传WordPress文怎么写
  • 怎么做自己的卡盟网站phpwind wordpress
  • 网站取源用iapp做软件手机怎么开发软件app
  • 新网站怎样做推广资源分享网站怎么建设
  • 网站怎么看被百度收录旅游网页设计模板简约图片
  • 设计公司网站运营知乎软文推广
  • 蚌埠做网站哪家好淄博网站建设多少钱
  • 网站开发字典文档建设网站的意义 作用
  • 威海微网站建设网赢天下深圳网站建设
  • wordpress外贸服装营销型主题seo兼职外包
  • 如何评估一个网站seo的优异程度在局域网内访问本机的asp网站
  • 怎么利用网站做cpa推广工具型网站有哪些
  • 三亚网站建设网上国网app推广
  • 网站建设备案企业vi品牌设计
  • 优购物官方网站订单查询制作网页网站小说教程
  • 中国建设教育协会是什么网站湖南网站建设价格
  • 做的网站怎么打开是白板网站开发基于什么平台
  • 网站后台删除二级栏目如何推广小程序商城