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

漳州网站建设长岭网站优化公司

漳州网站建设,长岭网站优化公司,北京做兼职从哪个网站,做网站咋做本文是结合实践中和学习技术文章总结出来的笔记(个人使用),如有雷同纯属正常((✿◠‿◠)) 喜欢的话点个赞,谢谢! 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.hkea.cn/news/207235/

相关文章:

  • 哪些外贸网站可以做soho首页
  • 三门峡网站建设电话青岛网站推广公司
  • 洞口做网站找谁市场营销推广方案模板
  • 怎么做用来表白的网站湖人队最新消息
  • 新疆网站建设哪家好泉州网站seo外包公司
  • 网站开发前后端工具组合深圳推广公司推荐
  • 老外做的汉字网站一键生成app制作器
  • 网上设计接单的网站seo排名优化排行
  • wordpress后台加统计代码seo建站的步骤
  • 怎么做外贸网站的邮箱签名搜索引擎优化是指什么
  • 网页制作基础教程免费邯郸网站seo
  • phpcms做网站感想漯河seo推广
  • 公司部门kpi绩效考核指标模板河北百度seo软件
  • 印团网网站是哪家做的唯尚广告联盟
  • 网红营销网站seo综合查询怎么用的
  • 西安地区网站建设云推广
  • wordpress个人站2020年关键词排名
  • 网站建设企业公司石家庄新闻头条新闻最新今天
  • 道滘镇做网站百度统计
  • qq空间做宣传网站怎样建立自己的网站平台
  • 做设计一般用的素材网站是什么意思刷网站排名软件
  • 帮人做兼职的网站吗青岛seo服务哪家好
  • 贷款类网站怎样做网络营销的推广
  • 乐清做网站哪家好税收大数据
  • 校园网站建设需求天津放心站内优化seo
  • 哈尔滨微网站建设热搜在哪里可以看
  • 网站用oracle做数据库福州seo推广服务
  • 康保县城乡建设委员会网站营销型网站重要特点是
  • 手机做网站的步骤跨境电商有哪些平台
  • 请人做网站要多少网络事件营销