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

建站工作室开创者wordpress素材

建站工作室,开创者wordpress素材,商务网站内容建设包括,wordpress 主题编写本文是结合实践中和学习技术文章总结出来的笔记(个人使用),如有雷同纯属正常((✿◠‿◠)) 喜欢的话点个赞,谢谢! React路由介绍 现在前端的项目一般都是SPA单页面应用,不再是以前多个页面多套HTML代码项目了,应用内的跳转不需要刷新页面就能完成页面跳转靠的就是路由系统 R…

本文是结合实践中和学习技术文章总结出来的笔记(个人使用),如有雷同纯属正常((✿◠‿◠))

喜欢的话点个赞,谢谢!

React路由介绍

现在前端的项目一般都是SPA单页面应用,不再是以前多个页面多套HTML代码项目了,应用内的跳转不需要刷新页面就能完成页面跳转靠的就是路由系统

React路由主要有两种:

  • BrowerRouter路由: 就像平常网站www.baidu.com/test 这就是一个路由

  • HashRouter 路由: 比BrowerRouter多出了一个#符号,使用URL的哈希值实现,比如www.baidu.com/#/test

路由配置: createHashRouter或者createBrowserRouter二选一就可以,这里是为了显示效果

import { createHashRouter ,createBrowserRouter} from 'react-router-dom'
import Home from '../pages/Home';
import Test from '../pages/Test';//路由
export const globalRouters = createHashRouter/createBrowserRouter([{// 首页path: '/',element: <Home />,},{// 测试页面path: '/test',element: <Test />,}
])

BrowerRouter路由

路由是什么样的就是展示成什么样子,比如test页面

编辑

优点是路由所见即所得

缺点是在服务器渲染的时候需要后端坐映射:

nginx配置

location /web {try_files $uri /index.html;
}

否则的会显示找不到页面

编辑

HashRouter路由

HashRouter路由多了一个#分割域名和路由,这样的好处就是服务端渲染的时候不需要做任何配置,就可以直接显示页面:

编辑

所以我们一般开发通常采用HashRouter路由,这样不需要后端同学配置

React路由守卫

在vue里面通过router.beforeEach就可以直接拦截路由,比如用户登录失效之类的

router.beforeEach((to, _from) => {nprogress.start() // 开始加载进度条// 用户登录失效if (to.meta.requiresAuth && !store.state.login.UserInfo.name) {// 此路由需要授权,请检查是否已登录// 如果没有,则重定向到登录页面return {path: '/login',// 保存我们所在的位置,以便以后再来query: { redirect: to.fullPath }}}// 如果页面不存在if (!to.name && to.path !== '/404') {return {path: '/404'}}
})

但是我们React路由原生没有这个函数,所以需要自己处理拦截效果

以下是基于React Router V6 实现的一个简单的路由守卫校验

src/router/index.tsx文件

import { Route, Routes, Navigate } from 'react-router-dom'
import { ReactNode } from 'react';
import Test from '../pages/Test';
import Login from '../pages/Login';
import Error404 from '../pages/404';
import Home from '../pages/Home';
import React from 'react';//路由校验
const Router = () => {const routes = [{path: '/',auth: false,component: <Home />,},{path: '/test',auth: false,component: <Test />,},{path: '/*',auth: false,component: <Error404 />}]//路由校验const RouteChildren = (param: any) => {//判断是否已经登录逻辑,我此处忽略了const isLogin = falsereturn (param.map((item: { path: string, auth: boolean, component: ReactNode, child?: any }) => {return (<Route path={item.path} element={!isLogin ? <Navigate to='/login' replace={true}></Navigate> : item.component}key={item.path}>{item?.child && RouteChildren(item.child)}</Route>)}))}return (<Routes>{/* 如果没有登录的话 渲染那里全部阻塞,所以需要提前配置一个login */}<Route path={"/login"} element={<Login />} />{RouteChildren(routes)}</Routes >)}export default Router;

src/pages/index.tsx

import React from 'react';
// import './index.css';
import { HashRouter } from 'react-router-dom'
import RouterMap from '../router/index.tsx'
function App() {return (<HashRouter><RouterMap /></HashRouter>)
}
export default App

总结:React的路由可以管理整个React应用,并且只需要使用一次即可,React路由的一切展示都是组件,写React路由其实就是在写组件

http://www.yayakq.cn/news/466607/

相关文章:

  • 模板网站建设流程图厦门seo外包公司
  • 做网站用什么cms 知乎丰台区网站建设公司
  • 建立一个网站需要哪些步骤茂名网站建设方案书
  • 北京住房城乡建设厅网站首页wordpress 两栏
  • 佛山网站优化有哪些欧米茄表官方官网
  • 南京越城建设集团有限公司网站外贸网站有哪些?
  • 拿别的公司名字做网站福州seo建站
  • 带购物车的网站模板南宁建企业网站
  • 贵阳做网站做得好的广西柳州网站建设小程序公司
  • 网站常用特效建站平台费用
  • 宁波网站制作出售全球访问量top100网站
  • 地方信息网站怎么做大连sem网站建设
  • 网站怎么做赚钱网站怎么做图片动态
  • 西安网站建设聂卫阿里巴巴运营免费教程
  • 艺术视频手机网站可以做吗在线免费开网站
  • 云速成美站做网站好吗那可以做网站
  • 网站开发还需要兼ie吗如何获取网站是哪个公司制作
  • 网站建设模块是什么意思WordPress图片类源码
  • 网站开发的话术厦门网站建设手机
  • 企业免费网站推广公司qq在线登录聊天
  • 高端大气的的网站学校网络推广方案
  • 自己做网站最新视频教程江门做公司网站
  • 兴义网站seoui培训基地
  • 预付的网站开发费用怎么入账校园门户网站系统建设关键技术
  • 做网站看百度脸色新乐网站建设
  • 台州市建设工程质量检测中心网站视觉营销网站建设规划分析
  • 织梦cms网站模板网站建设艾瑞市场分析
  • 口碑好的宜昌网站建设有空间与域名 怎么做网站
  • 单页网站如何做国外互联网科技网站
  • 搭建广告网站费用网站设计在线crm系统