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

中山市智能h5网站建设公司互联网营销师证

中山市智能h5网站建设公司,互联网营销师证,做一网站要什么时候开始,彩票网站怎么做前言 升级前版本为5.1.2 下载与运行 下载 npm install react-router-dom6运行 运行发现报错: 将node_modules删除#xff0c;重新执行npm i即可 运行发现如下报错 这是因为之前有引用react-router-dom.min#xff0c;v6中取消了该文件#xff0c;所以未找到文件导致报错。…前言 升级前版本为5.1.2 下载与运行 下载 npm install react-router-dom6运行 运行发现报错: 将node_modules删除重新执行npm i即可 运行发现如下报错 这是因为之前有引用react-router-dom.minv6中取消了该文件所以未找到文件导致报错。 将引用变为react-router-dom即可解决。 再次运行发现如下报错 这是因为react-router-dom6取消了withRouter如果想要获取路由地址需要使用useLocation 变为 再次运行发现如下报错 按照官网进行如下修改 Switch 被替换为 Routes v5 时代的第一个被替代的是Switch组件。该Switch组件用于包装我们的路由它确保每次只加载一个匹配的路由。但这在 v6 中不再存在。我们使用Routes组件来替换Switch。请注意我们仍然需要导入BrowserRouter包装我们的应用程序就像在 v5 中所做的那样。 在 v5 中我们是这样做 import { BrowserRouter, Switch } from react-router-dom;function App() {return (BrowserRouterdiv classNameAppSwitch{/* 路由Route在此定义 */}/Switch/div/BrowserRouter); } export default App但在 v6 中我们将这样做 import { BrowserRouter, Routes } from react-router-dom;function App() {return (BrowserRouterdiv classNameAppRoutes{/* Switch 会被改成 Routes */}{/* 路由Route在此定义 */}/Routes/div/BrowserRouter); }export default App注意v5的Switch中可以包含非Route元素但Routes中只能存在Route否则会报错。 Route组件使用更新 尽管该Route组件在 v6 中仍然保留一个位置但我们定义它的使用方式与我们在 v5 中的方式不同。我们将不再以 v5 中的任何方式放置我们想要渲染的组件而是统一将其作为elementprop的值传递。 没有exact配置 在 v5 中不添加exact作为Route组件的props的话如果 URL 以 path 关键字开头则路径将匹配因为匹配过程是从上到下的顺序。但在 v6 中我们将不再需要该exact配置因为路径模式匹配算法已更改并且现在更加增强。 在 v5 中我们这样做了 Switch{/* 三种Route组件使用定义 */}Route path/signup component{Product} /{/* 或 */}{/* 这个方法允许我们将 props 传递给渲染的组件 */}Route path/gamesProduct id{2} //Route{/* 或是通过render函数 */}Route path/games render{(props) Product {...props} /} / /Switch在 v6 中 Routes{ }Route path/games element{Product /} /{/* 带有props的渲染组件 */}Route path/movies element{Product id{200} categoryshirt /} / /RoutesLinks 和 NavLinks Link和NavLink组件仍然可以运行在V6。Link组件使用与在 v5 的时候保持一样但使用NavLink组件时删除了activeClassName和activeStyle prop。在 v5 中activeClassNameprop 用于在链接激活后自动将一些 CSS 类应用于链接同时activeStyle允许我们在链接激活时向链接添加内部样式。 但是在 v6 中现在可以使用一个函数来获取有关链接活动状态的信息。该函数的参数是一个具有属性的对象isActive。此属性在链接处于活动状态时为真在非活动时为假。isActive的值允许我们使用条件表达式来指示活动样式或类名。 在 v5 中 import {NavLink} from “react-router-dom”{/* … */} NavLinkto/productstyle{{ color: #689 }}activeStyle{{ color: #3072c9 }}classNamenav_linkactiveClassNameactive Products /NavLink但在 v6 中我们将这样做 NavLinkto/productstyle{({ isActive }) ({ color: isActive ? #3072c9 : #689 })}className{({ isActive }) link${isActive ? active : }} Product /NavLinkNavigate替代Redirect 在 v5 中使用该Redirect组件将一个页面带到另一个页面但它不再从 v6 中的 react-router-dom 导出。它已被Navigate组件替换。 在 v5 中 Route path/faqRedirect to/about / /Route Route path/about component{About} /但在 v6 中 Route path/games element{Navigate to/about /} /; Route path/games element{About /} /;需要注意的是如果只是按照Navigate上面代码片段中的方式添加组件它只会将导航到该路径的导航推送到导航堆栈中但是如果我们打算用新页面替换当前页面我们将 replace 属性添加到Navigate组件中如下所示 Route path/games element{Navigate replace to/about /} /;嵌套路由 顾名思义嵌套路由是放置在另一个路由中的路由。它们用于在子组件中呈现更具体的信息。在 v6 中将嵌套路由放置为父路由的子路由。然后引入Outlet组件它是从渲染组件中的 react-router-dom 导出的用于指定希望嵌套信息显示在哪里。Outlet 组件不是必需的但它使代码更清晰。 在 v5 中 import { useRouteMatch } from react-router-dom; function App() {return (BrowserRouterSwitchRoute exact path/about component{About} /Route path/product component{Product} //Switch/BrowserRouter); }function Product() {let match useRouteMatch();return (divSwitch{/* match.path 返回父路由中指定的路径。在这种情况下它是“/product */}Route path{${match.path}}AllProducts //Route{/* 匹配 /product/:id */}Route path{${match.path}/:id}ProductDetail //Route/Switch/div); }在 v6 中 import { Outlet } from react-router-dom;function App() {return (RoutesRoute path/about element{About /} /Route path/product element{Product /}{/* 这里嵌套路由的路径是相对于父路由的路径的。 */}{/* 这里变成 /product/ */}Route path/ element{AllProducts /} /{/* 这里变成 /product/:id */}Route path/:id element{ProductDetail /} //Route/Routes); }function Product() {return (ContainerdivProduct/div{/* 父组件的其他内容 */}/{/* 这是嵌套信息开始的地方 */}Outlet //Container); }useNavigate代替useHistory 当用户因路径上发生的事件例如单击按钮、API 请求完成等而被重定向时就会发生程序化导航。在 v5 中可以使用useHistory钩子来执行以下操作 import { useHistory } from react-router-dom;function Product() {const history useHistory();const handleClick () {//这会将新路线推送到导航堆栈的顶部history.push(/new-route);history.push({pathname:/new-route,state:{p1:xxx}); // 传参//这会将当前路线替换为导航堆栈中的新路由history.replace(/new-route);};return (divbutton点击我重定向到新路由/button/div); }但是在 v6 中useHistoryhook 被替换为useNavigatehook并且以不同的方式使用它。 import { useNavigate } from react-router-dom;function Product() {const navigate useNavigate();const handleClick () {//这会将新路线推送到导航堆栈的顶部navigate(/new-route);navigate(/new-route,{state:{p1:xxx}}); // 传参//这会将当前路线替换为导航堆栈中的新路由navigate(/new-route, { replace: true });};return (divbutton点击我重定向到新路由/button/div); }一件很酷的事情是以在导航堆栈上任意前进和后退。通过使用正数作为上述参数navigate()路由会向前移动该步数。负数向后做同样的事情 // Goes forward navigate(1) // Goes forward twice navigate(2) // Goes backward navigate(-1) // Goes backward three times navigate(-3)删除Prompt组件 Prompt如果有未保存的更改v5 中的组件可防止意外离开页面。但是 react-router 团队并没有将它包含在 v6 中也没有替代方案。因此如果你需要该功能你可以手动实现它或返回到 v5。 除了不包括Prompt在当前版本v6中useBlocker和usePrompt都不起作用。react-router 团队虽然在官方文档中表示他们目前正在努力将其添加回 v6但不是针对 6.x 的第一个稳定版本。 注意 react-router-dom5的Switch可以嵌套Redirect 但react-router-dom6的Routes中只可以存在Route和Route.Fragment v5的Router写法需要利用history import { createBrowserHistory } from history const customHistory createBrowserHistory()const Root () {return (Router history{customHistory}....../Router) }v6直接更改路由引入方式即可 import { BrowserRouter } from react-router-domconst Root () {return (BrowserRouter....../BrowserRouter) }
http://www.dnsts.com.cn/news/91012.html

相关文章:

  • 做淘客的网站名称seo研究协会
  • 网站规划与建设大作业答案怎么建设个人网站教程
  • 网站推广软件有哪些app开发公司怎么选
  • 网站加载模式建设机械网站公司
  • 个人备案网站可以做商城展示广东旅游网站建设
  • wordpress站内信群发各类网站排行
  • 苏州企业建设网站价格东莞石碣镇
  • 网站建设的pest分析重庆模板建站软件
  • 金华网站建设微信开发建造自己的网站
  • 郑州数码网站建设服务公司常用的网络推广方法有
  • 广东品牌网站制作公司2015网站建设源码
  • 做食品网站需要什么条件做问卷赚钱最好似网站
  • 集团公司网站怎么做品牌购买平台
  • 为什么上传网站模板网站上没有文字和图片做网站语言
  • 网络营销评价的名词解释北京网站建设 seo公司
  • 网站优化师负责干什么杭州好的vi设计公司
  • 自己怎么制作一个网站百度指数官网查询入口
  • 国内优秀网站设计师3 阐述网站建设的步骤过程 9分
  • 让自己的网站收录企业网站建设公司注意哪些问题
  • 网页版微信怎么加好友电商seo引流
  • 南京网站制作百家号湖州设计公司有哪些
  • 兼职做网站访问量和数据网站界面设计基础
  • php购物网站开发摘要杭州做网站推广公司推荐
  • 网站建设需要资质南城网站仿做
  • 营销型企业网站系统模板下载电子商务网站建设策划书 服装 有详细数据库设计
  • 做淘宝需要知道什么网站国外html模板网站
  • 品牌创意网站网站建设中的功能模块描述
  • 西红柿怎么做网站wordpress 数据库字段
  • 新浪云虚拟主机做电影网站wordpress 嵌入 php代码
  • 昆山网站维护模板网站建设报价