首页 > 其他分享 >若依 | 点击顶部 tag 标签不自动刷新

若依 | 点击顶部 tag 标签不自动刷新

时间:2022-08-18 18:35:42浏览次数:57  
标签:缓存 标签 若依 点击 tag 刷新 路由 页面

需求场景

之前:只要点击若依顶部的标签,页面都会自动刷新。

问题:A 页面有查询结果,切换到 B 页面查看信息,再切回 A 页面,则 A 页面的查询结果不会保留。

需求:点击标签,页面不自动刷新,或者保留查询结果。

image

尝试

方案一

翻了下点击标签的源码,发现:它是 <router-link> 标签。路由跳转到目标地址后,会自动刷新页面。如果每次进入页面时,都设置导航守卫,根据 Vuex 查询该页面上一次是否有查询结果,若有,则不刷新页面,反之刷新。

这种操作对性能消耗较大,不推荐。

image

方案二:推荐

在搜索攻略时,发现 keep-alive 就是为此而生的 —— 若页面内容没有改变,就不刷新,保留缓存;反之刷新。

若依源码也使用到了它:

image

image

image

因此,问题很容易解决了

只要在若依的菜单管理页面配置时,点击 缓存,并且确保组件 name 和 组件的路由地址一致(这一点非常重要!!!)

image

image

image


如果组件名称是多个单词构成的呢?

路由地址必须写为 camel 驼峰命名形式,组件名称必须写为 pascal首字母全大写的形式。

image

image

image

注意

组件名称不建议用小写形式,这样容易与 HTML 的标签名重复,会报错,且缓存也不会生效。比如:

image

image


如果是自己在 router.js 中定义的路由,不是在菜单管理页面配置的路由,怎样实现缓存呢?

image

很奇怪的一点是:这里的 path 没有写为驼峰形式 projectLibrary,但仍然可以实现缓存

如果在菜单管理页面配置路由的地址写为 kabab 形式,比如 project-library,就无法缓存。

如果想不缓存,在 meta 中设置 noCache: true 即可

image

总结

若依中实现页面缓存:

  • 菜单页面配置的路由

    1. 是否缓存-勾选
    2. 路由地址书写为驼峰形式(比如:propertyList , figure),路由页面中 export default 导出的 name 书写为 pascal首字母全大写的形式(比如:PropertyList , Figure)。
  • 手动在 router.js 中书写的路由

    1. 确保路由名称 name 和 路由页面中 export default 导出的 name一样,都是pascal首字母全大写的形式(比如:PropertyList , Figure);
    2. path 可写为 kabab 形式,比如 project-library
    3. 若不想缓存,则在 meta 中设置 noCache: true

标签:缓存,标签,若依,点击,tag,刷新,路由,页面
From: https://www.cnblogs.com/shayloyuki/p/16599719.html

相关文章

  • iframe标签存取token的问题
    需求:在a项目中嵌套b项目的b1页面,使用iframe实现页面嵌套,但是token不共享的情况下如何存取token正常访问B1页面。实现:后台提供不需要输入用户名密码的接口,跑定时任务可......
  • code::blocks 编辑标签(editor tab)路径太长问题,修改后只显示文件名
    code::blocks安装后有一个比较烦人的问题,就是打开文件都是显示相对路径,导致文件多了路径太长,文件之间不好切换。 修改前:   修改后:   解决方案:Setting-......
  • JSTL概述、JSTL常用标签
    JSTL概述概念:JavaServlerPagesTagLibrary标准标签库是开源免费的jsp标签作用:用于简化和替换jsp页面上的java代码使用步骤:导入jstl相......
  • ZYNQ系列VITIS不支持JTAG模式的核心板烧录方法
    2-1:系统环境变量修改    对于ZYNQ或者MPSOC下载QSPI程序需要用到2个文件    Boot.bin文件:改文件由fsbl.elf文件、fpga.bit文件、应用程序.elf文件合成  ......
  • HTML 模板里面几个标签的含义
    HTML模板里面几个标签的含义告诉浏览器使用HTML的版本,以下表明是H5版本<!DOCTYPEhtml>告诉浏览器,这是英文页面。'zh'或者'zh-cn'代表中文<htmllang="en......
  • 标签页
    如何更改新标签页扩展程序搜索newtabredirect设置启动时点击选项输入指定网站书签在新窗口打开用ctrl点书签......
  • link标签rel属性
    1.manifestmanifest是HTML5引入的应用程序缓存,即在没有网络的情况下可以进行访问,.webmanifest是约定俗成扩展名,返回文件内容类型需要是:Content-Type:application/manife......
  • JSP指令导入标签库、JSP指令导入注释
    JSP指令导入标签库includ:页面包含的,导入页面的资源文件ttavlib:导入资源  JSP指令导入注释1,html注释:<!---->:只能注释html代码片段2,......
  • 俄罗斯联邦发布第1249号法令简化进口和标签要求
    2022年7月22日,俄罗斯联邦政府发布了第1249号法令“关于353号法令附件18的修正”,该法令已于发布后立即生效。该法令简化对于产品的进口和标签要求,要点如下:1.适用于EAEUEAC......
  • HTML4与HTML5中label标签的不同用法
    label标签:用来将文字和单选或者多选按钮进行绑定。 html4中label标签需要通过for和id配合使用:<inputtype='radio'id='nan'/><labelfor='nan'>男</label> html......