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

重庆智能网站建设企业wordpress 网址全部变成ip

重庆智能网站建设企业,wordpress 网址全部变成ip,大同网站建设推广,百度关键词搜索排名查询前言#xff1a; 因为 react、vue都是单页面应用#xff0c;路由跳转时#xff0c;就会销毁上一个页面的组件。但是有些项目不想被销毁#xff0c;想保存状态。 比如#xff1a;h5项目跳转其他页面返回时#xff0c;页面状态不丢失。设想一个 页面我滑倒了中间#xf…前言 因为 react、vue都是单页面应用路由跳转时就会销毁上一个页面的组件。但是有些项目不想被销毁想保存状态。 比如h5项目跳转其他页面返回时页面状态不丢失。设想一个 页面我滑倒了中间然后跳转到 详情页然后 返回之前的页面刷新了回到顶部了肯定不行搜索条件之类的消失了滚动条回到顶部了 比如pc端项目后台管理项目里点击时 打开一个页签页签切换状态页会丢失。每次切换页签都重新请求了接口。 解决方案 方案调研 经过我的调研 我找到的 第三放库有 react-activation umi-plugin-keep-alive umi-plugin-keep-alive-tabs react-keepalive-router react-router-cache-route redux、dva等(状态共享插件) react-keepalive-router、react-router-cache-route: react-keepalive-router、react-router-cache-route 是个人开发的github上issues里的建议也没及时回答。所以我就放弃了没考虑。 Offscreen: Offscreen是react 18.x出的实验性api,所以我也放弃了。可以看react Offscreen 不过 此api如果正式使用的话应该是最好的选择。其原理就是 把页面 隐藏起来不销毁组件树。其实其他 插件原理也是这样。 umi-plugin-keep-alive、umi-plugin-keep-alive-tabs: umi-plugin-keep-alive、umi-plugin-keep-alive-tabs 是umi里的是阿里开发的优先考虑的就是这个但看了 文档发现 它基于 react-activation。而且 作者也让关注 。 umi-plugin-keep-alive api 其实 如果你项目是 umi的话 用 umi-plugin-keep-alive也可以低版本umi可能不行。antd-pro 若依等等基于umi搭建的库都可以使用umi-plugin-keep-alive。这个插件 和umi绑定所以我也放弃了但应该也可以单独使用我没试过。 redux等状态共享插件需要项目搭建时就使用,原理就是页面里不写 useState和state全都放到 store里。然后对整个store缓存。每次进入页面 判断一下有缓存就走缓存没有重新请求。像redux之类的都有持久化插件配合持久化插件就很容易实现。缺点是繁琐且破坏了 不优雅页面里不能写状态。而且 还要额外 记录滚动条的位置。 react-activation: 所以综上我选择了 react-activation 它是路由级别的缓存。 react-activation基础使用步骤及配置 React Activation 仅支持 React 16 及以上版本 注意 1.请勿使用 React.StrictMode / 2.React v18不要使用 ReactDOMClient.createRoot 使用 ReactDOM.render 代替 https://github.com/CJY0208/react-activation/issues/225#issuecomment-1311136388 1.安装 react-activation yarn add react-activation # or npm install react-activation可选推荐在 .babelrc 中添加 react-activation/babel 插件 该插件在编译过程中为每个JSX元素添加了一个 _nk 属性以帮助 react-activation 运行时根据 react-node-key 的渲染位置生成唯一的标识符。 {plugins: [react-activation/babel] }如果不想使用Babel建议每个 声明一个全局唯一不变的 cacheKey 属性以保证该高速缓存的稳定性如下所示 KeepAlive cacheKeyUNIQUE_ID /2.import KeepAlive 然后包裹要缓存的组件 或者元素。 官网示例 // App.jsimport React, { useState } from react import KeepAlive from react-activationfunction Counter() {const [count, setCount] useState(0)return (divpcount: {count}/pbutton onClick{() setCount(count count 1)}Add/button/div) }function App() {const [show, setShow] useState(true)return (divbutton onClick{() setShow(show !show)}Toggle/button{show (KeepAliveCounter //KeepAlive)}/div) }export default App3.将 外层放置在不会卸载的位置通常在应用入口处 配合路由使用react-activation 1.isCache是自定义的属性用来标识是否 缓存。true就是改路由需要缓存。 {path: /,component: Initial /,title: 主页,name: initPage,isCache: true,cacheKey: home,}路由配置可以参考 react create-react-app v5 配置路由(报错及注意事项) App.js 入口文件 或者 路由配置页面里 封装一层 根据 isCache值来确定是否使用 keepAlive包裹。如下 import React from react; import { BrowserRouter, Routes, Route, HashRouter } from react-router-dom; import routes from ./routes.js; import KeepAlive from react-activation; // 封装一层 专门负责显示页面标题 const DomTitle ({ route }) {const { title, component, isCache ,cacheKey,name} route;document.title title;if (isCache) {return KeepAlive cacheKey{cacheKey} name{name}{component}/KeepAlive;}return {component}/; }; const App () {return (HashRouterRoutes{routes.map((route) (Routekey{route.path}path{route.path}//element{route.component }// 专门负责显示页面标题element{DomTitle route{route} /}/))}/Routes/HashRouter); };还可以手动清除缓存 import {useActivate,useUnactivate,withActivation,withAliveScope,useAliveController, } from react-activation;const { drop, dropScope, clear, getCachingNodes } useAliveController();console.log(getCachingNodes(), 缓存节点);//drop(homePage); // 手动关闭某个页面// dropScope(detailPage);dropScope(homePage); // 参数就是上面定义的 cacheKey还需要 将 外层放置在不会卸载的位置通常在应用入口处我的项目时create-react-app 是index.js。 具体 api使用方法和注意事项请看 具体api可以看(如果 github打不开可以看npm的npm是英文的可以用edge浏览器 翻译一下) react-activation github 使用文档 react-activation npm 使用文档
http://www.hkea.cn/news/14412320/

相关文章:

  • 商城网站大概多少钱wordpress用户组阅读文章
  • 企业管理信息系统网站市场营销七大策略
  • 建网站需要什么步骤最贵网站建设
  • 网络开发是什么专业广东搜索引擎优化
  • 用vs2010做的网站的源码百度没有收录我的网站吗
  • 做二手元器件那个网站查价格做动画的网站有哪些
  • 手机商城设计湖北网站建设优化
  • 网站做ddns解析建筑工地招工网
  • 外贸先做网站还是开公司嘉兴企业网站建设
  • 中山蓝图科技网站建设都匀住房和城乡建设部网站
  • 网站建设广告宣传素材qq安全中心信任网站
  • 株洲网站设计外包运营宁波招聘网站开发
  • 安阳哪里有学做网站的学校星链友店
  • 怎么提交网站收录网站icp备案申请流程
  • 长沙协会网站设计专业服务开网店的基础知识
  • 玩具网站建设策划书流程西安做网站一般多少钱
  • 有网址和关键词就能刷网站排名网站建设记录过程
  • win8网站模版个性化定制网站的特点
  • 福建响应式网站制作网站商务方案
  • 郑州网站怎么推广软件开发文档的作用
  • 蓬莱网站建设哪家专业网站开发前端课程
  • 泰州网站建设找思创营销型网站网站
  • 楼盘建设信息网站雄安网站建设优化公司
  • 淄博定制网站建设公司怎样在工商网站做遗失
  • 响应式网站制作沈阳男科医院咨询电话
  • 微企点建好网站后要怎么做网站制作费用多少钱
  • 建设公司的网站网站单页别人是怎么做的
  • 提升网站建设品质价位军事时事新闻最新消息
  • 上海网站建设褐公洲司套模版做网站
  • 网站搭建 成都wordpress 列表页面