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

深圳分销网站设计费用镇江网站定制

深圳分销网站设计费用,镇江网站定制,汇中建设 官方网站,如何建设网站方便后期维护React 高阶组件是什么 官方解释∶ 高阶组件(HOC)是 React 中用于复用组件逻辑的一种高级技巧。HOC 自身不是 React API 的一部分,它是一种基于 React 的组合特性而形成的设计模式。 高阶组件(HOC)就是一个函数&…

React 高阶组件是什么

官方解释∶

高阶组件(HOC)是 React 中用于复用组件逻辑的一种高级技巧。HOC 自身不是 React API 的一部分,它是一种基于 React 的组合特性而形成的设计模式。

高阶组件(HOC)就是一个函数,且该函数接受一个组件作为参数,并返回一个新的组件,它只是一种组件的设计模式,这种设计模式是由react自身的组合性质必然产生的。我们将它们称为纯组件,因为它们可以接受任何动态提供的子组件,但它们不会修改或复制其输入组件中的任何行为。

HOC的优缺点:

  • 优点∶ 逻辑复用、不影响被包裹组件的内部逻辑。
  • 缺点∶hoc传递给被包裹组件的props容易和被包裹后的组件重名,进而被覆盖

路由权限控制做什么?

主要就是判断用户是否登陆,只有登陆获取到有效的token,才能跳转到页面。

思路:

判断是否有 token ,如果有 token 则返回正常的组件,如果没有 token 则跳转到登陆页。

实现:

因为是ts所以先定义参数类型,这里的ReactElement代表的是一个 React 元素例如:<div/> 或者是组件。之后我们获取到 token ,通过 token 的有无判断跳转到相应页面。

代码:

封装高阶组件:

interface AuthRouteProps {children: React.ReactElement;
}export function AuthRoute({ children }: AuthRouteProps) {const token = getToken();if (token) {return <>{children}</>;} else {// 使用 Navigate 组件进行导航message.error("请先登录");return <Navigate to="/login" />;}
}

在路由配置文件中,引入封装的组件,例如:

children: [{index: true,element: <Chat />},{path: '/paint',element: (<AuthRoute><Paint /></AuthRoute>)},{path: '/me',element: <div>我的</div>}]

缺点:

目前只是通过判断 token 有无,如果 token 失效了却还是会跳转,如果是跳转到的页面需要携带token 则可以在响应拦截器中进行处理:token 会发给后端,后端通过解密后来判断用户是否存在

// 添加响应拦截器
request.interceptors.response.use(function (response) {// 2xx 范围内的状态码都会触发该函数。// 对响应数据做点什么return response.data;},function (error) {// 超出 2xx 范围的状态码都会触发该函数。// 对响应错误做点什么if(error.status === 401){removeToken()router.navigate('/login')window.location.reload()}return Promise.reject(error);}
);

如果只是单纯的跳转页面的话要进行改造也是发一个请求给后端,后端通过处理返回给前端 token 是否有效:

export async function AuthRoute({children}){const token = getToken();// 模拟请求发给后端tokenconst res = await getUserInfo({ token });if (res.data.code) {return <>{children}</>;} else {return <Navigate to="/login" replace />;}
}

所以要通过具体的业务来处理用户登陆和 token 是否有效。

比较:

通过这样的方式写和直接在访问页面中判断token有什么区别?

直接在访问页面时判断:这种方式通常是在页面组件加载或渲染时进行的,即在用户已经导航到该页面后才进行检查。

使用AuthRoute组件:判断是在路由跳转之前进行的。当用户尝试访问受保护的路由时,AuthRoute组件会首先检查token,然后决定是否允许访问或进行重定向。

http://www.dinnco.com/news/77266.html

相关文章:

  • 傻瓜网站开发工具网站alexa排名
  • 在网上做兼职美工有哪些网站一站式软文发布推广平台
  • 潜江市建设工程合同备案网站seo网络推广技术
  • 如何做网站充值搜狗指数官网
  • 影视视频网站怎么做海外品牌推广
  • 文化墙设计网站推荐看b站二十四小时直播间
  • 添加网站栏目的步骤百度上做推广怎么做
  • 西安网站建设报价方案网站如何优化一个关键词
  • 重庆网站推广运营搜索引擎优化规则
  • 电子商务类网站模板成人短期技能培训学校
  • 巩义网站建设费用多少网络营销的概念和特点是什么
  • 郑州网站建设知名公司百度推广客户端app
  • 网站上有声的文章是怎么做的浏览器谷歌手机版下载
  • 世界上有php应用的网站合肥网站建设公司
  • 常见动态网站开发技术对比赣州seo排名
  • 网站管理员密码忘记了引流推广平台
  • 珠海企业网站制作公司软件外包企业排名
  • 苹果手机推广网站制作知乎营销平台
  • 廊坊做网站公司长沙seo推广外包
  • 专门做海产品的网站个人建网站的详细步骤
  • wordpress错误代码403入门seo技术教程
  • 阿里巴巴的网站建设与维护网络宣传的方法渠道
  • 网站建设的id调用怎么操作有没有推广app的平台
  • 武汉网站seo外包推广普通话ppt课件
  • 用什么语言能写网站吗谈谈你对互联网营销的认识
  • 可以做关键词优化的免费网站关键词排名优化
  • php网站开发的成功经历seo需要掌握什么技能
  • 企业域名邮箱张家口网站seo
  • 资源库网站开发什么搜索引擎搜索最全
  • 安阳门户网站优化网站的意思