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

为什么做网站会被批捕wordpress使用cdn菜单消失

为什么做网站会被批捕,wordpress使用cdn菜单消失,欧妮雅网页制作教程,优化关键词排名提升一、React路由简介 React 官方并没有提供对应的路由插件#xff0c;因此#xff0c;我们需要下载第三方的路由插件 —— React Router DOM。 React Router 在 2021 年 11 月份的时候更新 v6 的版本。本次课就主要讲解V6版本 二、路由配置 1、下载路由 在项目根目录中因此我们需要下载第三方的路由插件 —— React Router DOM。 React Router 在 2021 年 11 月份的时候更新 v6 的版本。本次课就主要讲解V6版本 二、路由配置 1、下载路由 在项目根目录中通过以下命令 yarn add react-router-dom 2、路由配置 1首先在react项目的入口文件index.js文件中使用BrowserRouter将App包裹起来 import {BrowserRouter} from react-router-dom ​ const root ReactDOM.createRoot(document.getElementById(root)); root.render(BrowserRouterApp //BrowserRouter ); BrowserRouter包裹这个应用一个React应用只需使用一次 在 React Router 中提供了两种路由模式hash 和 history。 对应的的路由组件分别是 HashRouterhash 模式的路由 BrowserRouterhistory 模式的路由 实际使用时任选其中一个模式引入即可 2其次在App.js文件中使用Routes设置路由出口使用Route指定导航链接 import React from react import {Routes,Route} from react-router-dom import Login from ./pages/Login import Register from ./pages/Register import Home from ./pages/Home export default function App() {return (RoutesRoute path/login element{Login/}/RouteRoute path/register element{Register/}/RouteRoute path/ element{Home/}/Route/Routes) } 核心组件作用说明 Routes:提供一个路由出口满足条件的路由组件会渲染到组件内部 Route: 用于指定导航链接完成路由跳转 path:path属性指定匹配的路径地址 element element属性指定要渲染的组件 三、路由跳转 React Router 中路由的跳转分为两种方式 标签组件跳转 JSAPI跳转 1、通过Link组件跳转 import React from react import {Link} from react-router-dom export default function Login() {return (divh1用户登录/h1Link to/register没有账号,去注册/Link/div) } 2、编程式路由跳转 实现步骤 导入useNavigate钩子函数 import {useNavigate} from react-router-dom 执行钩子函数得到跳转函数 let navigateuseNavigate(); 执行跳转函数完成跳转 import React from react import {useNavigate} from react-router-dom ​ export default function Register() {const navigateuseNavigate()const register(e){e.preventDefault()navigate(/login)}return (divh1用户注册/h1a href# onClick{(e){register(e)}}已注册去登录/a/div) } 注意 如果在跳转时不想加历史记录可以添加额外参数replace为true const register(e){e.preventDefault()navigate(/login,{replace:true})} 四、嵌套路由 1、基础配置 实现步骤 定义嵌套路由声明 RoutesRoute path/login element{Login/}/RouteRoute path/register element{Register/}/RouteRoute path/ element{Home/}Route pathcategory element{Category/}/RouteRoute pathgoods element{Goods/}/Route/Route/Routes 设置二级路由出口 export default function Home() {return (asideulliNavLink to/categroy分类管理/NavLink/liliNavLink to/goods商品管理/NavLink/li/ul/asidesection{/* 二级路由出口 */}Outlet/Outlet/section/) } 2、默认二级路由设置 RoutesRoute path/login element{Login/}/RouteRoute path/register element{Register/}/RouteRoute path/ element{Home/}{/*默认二级路由添加index属性删除掉path属性*/}Route index element{Main/}/RouteRoute pathcategory element{Category/}/RouteRoute pathgoods element{Goods/}/Route/Route /Routes 3、404页配置 应用场景当所有的路径都没有匹配的时候显示 语法说明在各级路由的最后添加*号路由作为兜底 RoutesRoute path/login element{Login/}/RouteRoute path/register element{Register/}/RouteRoute path/ element{Home/}{/*默认二级路由添加index属性删除掉path属性*/}Route index element{Main/}/RouteRoute pathcategory element{Category/}/RouteRoute pathgoods element{Goods/}/Route/Route{/*当所有路径都没有匹配时渲染此路由*/}Route path* element{NotFound/}/Route /Routes 五、路由模式 BrowserRouter模式部署在Nginx服务器上出现404问题的解决办法 1、React打包 在index.js的BrowserRouter上添加basename属性比如 BrowserRouter basename/cremApp/App /BrowserRouter 在package.json中添加homepage: . {homepage: . } 在终端上执行打包命令 yarn build 2、Nginx上部署 打包后会产生一个build文件夹然后将该文件改名为crem, 上传文件的linux服务器的/opt目录下 在/etc/nginx/conf.d/default.conf下添加如下配置 location /crem {alias /opt/crem;index index.html;} 进入shell中执行如下命令 ps aux|grep nginx #查看nginx进程 killall -9 nginx #杀死nginx进程 /usr/sbin/nginx #启动nginx服务器 3、防止404的配置 修改/etc/nginx/conf.d/default.conf文件添加如下配置即可 location /crem {alias /opt/crem;index index.html;try_files $uri /crem/index.html;} 六、路由传参 1、searchParams传参 实现步骤 传参 import {useNavigate} from react-router-dom export default function CategroyList() {let navigateuseNavigate();return (divh2CategroyList/h2button onClick{(){navigate(/categroyDetail?id12)}}详情/button/div) } 获取参数 import {useSearchParams} from react-router-domexport default function CategoryDetail() {let [params]useSearchParams()return (divh2CategroyDetail/h2divID:{params.get(id)}/div/div) } 2、params传参 实现步骤 路由设置 BrowserRouterRoutesRoute path/home element{Layout/}Route pathcategroy-detail/:id element{CategoryDetail/}/Route/Route/Routes/BrowserRouter 传参 import {useNavigate} from react-router-dom export default function CategroyList() {let navigateuseNavigate();return (divh2CategroyList/h2button onClick{(){navigate(/home/categroy-detail/13)}}详情/button/div) } 获取参数 import React from react import {useParams} from react-router-domexport default function CategoryDetail() {let paramsuseParams()return (divh2CategroyDetail/h2divID:{params.id}/div/div) } 七、集中式路由渲染 实现步骤 在项目根目录创建router文件夹并在该目录下创建index.jsx 在router/index.jsx编写路由配置项 import Login from ../pages/Login import Register from ../pages/Register import Home from ../pages/Home import CategoryList from ../pages/Category import CategoryDetail from ../pages/Category/Detail import GoodsList from ../pages/Goods import Main from ../pages/Home/Main export default [{path:/login,element:Login/},{path:/register,element:Register/},{path:/,element:Home/,children:[{index:true,element:Main/},{path:/categoryList,element:CategoryList/},{path:/categoryDetail/:id,element:CategoryDetail/},{path:/goodsList,element:GoodsList/}]} ] 在App.jsx中通过useRoutes钩子函数来进行集中式配置 import {useRoutes} from react-router-dom import router from ./router/index function App() {return useRoutes(router) } export default App; 在项目根目录下的index.js中使用BrowserRouter包裹App root.render(BrowserRouterApp//BrowserRouter ) 八、路由懒加载 1、实现步骤 使用lazy(()import(xxx))方式导入组件 import {lazy} from react const Loginlazy(()import(../pages/Login)) const Registerlazy(()import(../pages/Register)) const Homelazy(()import(../pages/Home)) const CategoryListlazy(()import(../pages/Category)) const CategoryDetaillazy(()import(../pages/Category/Detail)) const GoodsListlazy(()import(../pages/Goods)) const Mainlazy(()import(../pages/Home/Main)) export default [{path:/login,element:Login/},{path:/register,element:Register/},{path:/,element:Home/,children:[{index:true,element:Main/},{path:/categoryList,element:CategoryList/},{path:/categoryDetail/:id,element:CategoryDetail/},{path:/goodsList,element:GoodsList/}]} ] 通过 React 中提供了 Suspense 组件来实现路由的懒加载。 import {Suspense} from react function App() {return(Suspense fallback{loading/}{useRoutes(router)}/Suspense) } Suspense 组件身上必须设置一个 fallback 属性属性值可以是一个 HTML 标签也可以是一个自定义的组件。用于当路由组件还未加载出来前的提示。 2、解决路由闪屏 配置完路由懒加载后出现当进行路由跳转时出现闪屏现象要向解决这个问题可以使用 react-loadable插件进行解决 先下载react-loadable依赖包 yarn add react-loadable 建立一个loadable.js放在src/utils/loadable.js import Loadable from react-loadable; export default function withLoadable(comp) {return Loadable({//懒加载组件页面loader: comp,loading: () null,delay: ,}) } 修改router/index.js import loadable from ../utils/loadable const Loginloadable(()import(../pages/Login)) const Registerloadable(()import(../pages/Register)) const Homeloadable(()import(../pages/Home)) const CategoryListloadable(()import(../pages/Category)) const CategoryDetailloadable(()import(../pages/Category/Detail)) const GoodsListloadable(()import(../pages/Goods)) const Mainloadable(()import(../pages/Home/Main)) export default [{path:/login,element:Login/},{path:/register,element:Register/},{path:/,element:Home/,children:[{index:true,element:Main/},{path:/categoryList,element:CategoryList/},{path:/categoryDetail/:id,element:CategoryDetail/},{path:/goodsList,element:GoodsList/}]} ]
http://www.w-s-a.com/news/503083/

相关文章:

  • 申请一个域名后怎么做网站evernote wordpress
  • 网站左侧导航栏设计网站开发后台数据怎么来
  • 临西做网站报价网站建设需要写语句吗
  • 建设网站网站首页购物网站开发代码
  • 淘宝客怎么建立网站网站360优化
  • 安徽建海建设工程有限公司网站网站空间和域名价格
  • 农产品网站建设策划哪里有做枪网站的
  • 更改各网站企业信息怎么做张家港企业网站制作
  • 郑州网站建设咨询银川做网站哪家好
  • 微信网站 微信支付合肥seo排名收费
  • 织梦做的网站如何上线广东省广州市番禺区南村镇
  • 网站设计的导航栏怎么做太原有网站工程公司吗
  • 苏州虎丘区建设局网站如何在一个数据库做两个网站
  • 淘宝天猫优惠券网站建设费用腾讯邮箱企业邮箱登录
  • 深圳福田做网站公司海航科技网站建设
  • 网站降权查询wordpress更换文章背景色
  • 大型电商网站开发金融企业网站建设公司
  • 成都营销型网站建设价格化妆品品牌推广方案
  • 深圳公司手机网站制作苏州网站推广哪家好
  • 网站建设开发方式包括购买学校网站建设费计入什么科目
  • 做简单网站的框架图中小微企业查询平台
  • 哪些网站可以免费做产品推广建设建设部网站
  • 网站开发销售怎么做django做网站
  • 淘宝客网站做百度竞价万网域名怎么绑定网站
  • 建设网站找哪个公司北京知名大公司有哪些
  • 专业彩票网站开发网站流量在哪设置
  • 网站建设对应的岗位榆林做网站公司
  • 网站建设公司怎么算专业js网站分页怎么做
  • 网和网站的区别phpcms和帝国cms哪个好
  • wordpress改网站名字长沙网络营销外包