通过关键参数保持视图路由器处于活动状态

2023-12-21

如何分别使用不同的参数使 vue-router 保持活动状态?

TL:DR:

让我们考虑一个开发 Facebook 等网站的例子。每个用户都有一个个人资料页面。因为有很多用户,我们不想迭代所有用户并在加载时加载所有个人资料页面,如下所示

<template v-for="profile in profilePages">
   <profile-page :data="profile" v-show="this.route.params['id'] === channel.id"/>
</template>

常见的方法是:

路由器.js:

{
  component: ProfileWrapper,
  path: '/profile',
  children: [
    {
      path: ':id',
      component: ProfilePage
    }
  ]
}

频道页面:

<keep-alive>
   <router-view :=key="$route.fullPath"></router-view>
</keep-alive>

但这就是问题所在。由于用户访问某人的页面并导航离开,我希望路由器将其保留在某处的缓存中,或者只是将其隐藏。在我的特定情况下,用户最多访问 2-3 个个人资料,并在它们之间切换很多次。而且切换操作是很费时间的,因为里面有很多DOM。

我可以用vue-路由器 and 活着?

EDIT:

请检查sandbox https://codesandbox.io/s/xo0kokomyz。每次在页面之间切换(#1、#2、#3、#4)Vue创建新组件ProfileInnerComponent从头开始(不像 v-show 那样从缓存中)。通过检查红色 div 可以明显看出这一点create的钩子ProfileInnerComponent被调用,它发出事件,并且App添加带有当前时间的 div。


我通过添加以下代码更改了您的沙箱:

// in App.vue

<keep-alive>
   <router-view :key="$route.fullPath"></router-view>
</keep-alive>

and

//in Profile.vue

  <keep-alive>
    <profile-inner-component v-for="i in comps" :key="i" :data="i"/>
  </keep-alive>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过关键参数保持视图路由器处于活动状态 的相关文章

随机推荐

  • 使用 QObject 代替容器

    读完有趣的亲子系统后QObject我想知道 Qt 开发人员使用它来代替更传统的容器有多常见 假设内存连续性不是必需的 这似乎提供了一些有趣的功能 例如 您可以有一个QObject并为其提供不同类型的子级 然后根据其类型轻松找到所有子级 从而
  • 如何构建boost静态库?

    这可行 但不会构建 boost 库的静态版本 也许我错了 bjam toolset gcc prefix C boost 1 49 0 mingw install 尝试发出以下命令 bjam toolset gcc prefix C boo
  • 在 post 请求中发送文件

    在 python 中 我发送这样的文件 with open D someimage jpg rb as image imager image read files image imager r requests post url files
  • AWS SAM - 模板没有任何连接到 Lambda 函数的 API

    因此 我尝试将现有的 Spring Boot 应用程序转换为 AWS lambda 并使用 SAM 我正在尝试使用 aws sam cli 在本地尝试我的 lambda 但是通过我的 SAM 设置 我得到 Template does not
  • 使用 printf 打印浮点数时额外的前导零?

    我希望能够编写一个如下所示的时间字符串 1 04 02 1 hours使用 printf 当我尝试写这样的东西时 printf d 02d 02 1f hours n 1 4 2 123456 I get 1 04 2 1 hours 是否
  • 在相同的 Javascript 上下文中创建带有附加 svelte 组件的窗口

    我使用 Sapper 框架 我想打开我自己的开发工具窗口 该窗口应该能够完全访问主窗口的 Javascript 对象 我正在尝试创建一个带有 svelte 组件和相同 Javascript 上下文的新窗口 var win window op
  • Django,UserChangeForm 错误

    我正在制作一个自定义用户表单 用户可以在其中更改一些详细信息 它有两个错误 但我无法理解问题所在 第一个问题是表单没有填写用户详细信息 这似乎是因为selfform初始化时为空 为什么 第二个问题是 当我提交此表单时 它会抱怨一些 KeyE
  • 在Eclipse中,如何运行修改上下文路径的Tomcat Maven插件

    在安装了 m2 Maven 插件的 Eclipse 中 我可以使用 Run on Server 命令通过 Eclipse WTP 在 Tomcat 中运行我的 web 应用程序 现在我想通过 Maven 修改上下文路径 所以我使用以下插件
  • params=True 的 Altair 回归变换:当有多个组时如何访问 r² 和 coeffs

    我在用transform regression在图表中创建回归线和相应的方程文本 对于单个回归 这工作得很好 但是对于 setgroupby something 选项 文本将绘制在彼此之上 我尝试使用构建字符串lineBreak n 但这没
  • Tomcat 7.0.73 不适用于 java 9

    由于 catalina sh 中的默认 java endorsed dirs 选项 无法使用 java 9 启动基于 tomcat 的应用程序 Djava endorsed dirs usr local share tomcat endor
  • MVC4 - 如何从剃刀视图调用控制器方法

    我是 MVC 新手 有人可以帮助我并解释如何从视图调用控制器方法吗 我有 HomeController 里面有 ShowFileContent 方法 HttpPost public ActionResult ShowFileContent
  • python:打开并读取包含德语变音符号的文件作为unicode

    我已经编写了程序来从文本文件中读取单词并将它们输入到 sqlite 数据库中并将它们视为字符串 但我需要输入一些包含德语变音符号的单词 这是一段准备好的代码 我都用 尝试过 编码 iso 8859 15 和 编码 utf 8 没有不同 co
  • PayPal 重定向到相同的弹出窗口

    我在我的网页中集成了 PayPal 的 Identity API 像往常一样 当用户点击时login with paypal JavaScript 按钮 https developer paypal com webapps develope
  • 替换 ASP.NET Core 中的 @helper

    到目前为止 我不认为ViewComponent解决了也没有解决的问题TagHelper 有什么替代品吗 接受参数并返回一个的东西HtmlString 我没有看到任何有害的东西 helper foo string something div
  • 在discord.py 中将引号作为参数传递时出现错误

    目前 当有人在命令中使用引号时 我的 Discord 机器人出现错误 我收到以下错误 discord ext commands errors ExpectedClosingQuoteError Expected closing 这似乎是一个
  • oracle sqlplus 包装结果

    当我运行如下查询时 SELECT FROM CAR 结果出现 但每行换行为几行 如何停止这种换行以使每一行显示在一行上 换了之后还是有同样的问题set lines到一个大数字 select from dba directories OWNE
  • 许多WordPress主题中奇怪的虚假social.png的目的是什么

    我从网站下载了一些 WordPress 主题 我注意到一个奇怪的包含social png文件 查看这个文件 这不是一个真正的 png 文件 而是一个 php 脚本 其中包含难以理解的混淆代码 并且对于从其他站点分发的许多 WordPress
  • 用于将大小转换为人类可读字符串的 ObjC/Cocoa 类?

    有没有一种简单的方法可以做类似的事情 NSMagicDataConverter humanStringWithBytes 20000000 哪个会返回 19 1MB 从 OS X 10 8 和 iOS 6 开始 您可以使用NSByteCou
  • 如何将动态XHR内容动态导入到模板中?

    我使用以下代码获取仪表板 HTML 数据 该代码在单击按钮时执行 fetchDashboard const requestOptions Object headers new HttpHeaders append Authorization
  • 通过关键参数保持视图路由器处于活动状态

    如何分别使用不同的参数使 vue router 保持活动状态 TL DR 让我们考虑一个开发 Facebook 等网站的例子 每个用户都有一个个人资料页面 因为有很多用户 我们不想迭代所有用户并在加载时加载所有个人资料页面 如下所示