动态路由上的 Vue.js 2.0 转换未触发

2023-12-09

我发现转换不会在带有参数的动态路由上触发。例如,使用下面的代码,当我在/chapter/1我去/chapter/2没有过渡。但当我在/chapter/1我去/profile/1有一个 !

main.js file

require('normalize.css')

import Vue from 'vue'
import VueRouter from 'vue-router'
import App from './App'
import Panel from './components/Panel'
import Profile from './components/Profile'

window.bus = new Vue()

Vue.use(VueRouter)

const router = new VueRouter({
  routes: [
     { path: '/', redirect: '/chapter/1' },
     { name:'chapter', path: '/chapter/:id', component: Panel},
     { name:'profile', path: '/profile/:id', component: Profile}
  ]
})

new Vue({
  router,
  el: '#app',
  render: h => h(App)
})

App.vue模板

<template>
  <div id="app">

    <transition name="fade" mode="out-in">
      <router-view></router-view>
    </transition>

    <div class="controls">
      <router-link :to="{ name: 'chapter', params: { id: Math.max(1, parseInt($route.params.id) - 1) }}">
        Prev
      </router-link>
      <router-link :to="{ name: 'chapter', params: { id: parseInt($route.params.id) + 1 }}">
        Next
      </router-link>
    </div>
  </div>
</template>

也许是因为 vue-router 不会破坏父组件?我没有找到从代码运行转换的方法。我尝试了这个配置vue-router 示例包并且行为是相同的。


引用自doc

使用带有参数的路由时需要注意的一件事是,当用户从 /user/foo 导航到 /user/bar 时,将重用相同的组件实例。由于两条路由渲染相同的组件,因此这比销毁旧实例然后创建新实例更有效。然而,这也意味着组件的生命周期钩子不会被调用。

要对同一组件中的参数更改做出反应,您可以简单地观察 $route 对象


我应该发布问题吗?

感谢您的帮助 !


你能检查一下这个工作示例吗:https://jsfiddle.net/mani04/dLnz4rbL/

我尝试使用下面描述的方法元素之间的转换在文档中。

在我的小提琴示例中,主要使用问题描述中的代码,我使用了transition组件内的包装器,如下所示:

<transition name="fade" mode="out-in">
    <div class="page-contents" :key="$route.params.id">
        This is my chapter component. Page: {{parseInt($route.params.id)}}
    </div>
</transition>

该文件规定我们需要提供key使他们不同的元素对于 Vue.js。所以我添加了你的章节 ID 作为密钥。

我不知道这是一个 hack 还是一个正确的解决方案,我仅 2 周前就从 Angular2 迁移到了 Vue。但是,在有人给您提供更好的解决方案之前,您可以使用此方法来获得动态路线的转换。

关于将此问题发布在 github 页面中vue-router,我不确定这是否有资格解决/修复,但你绝对可以提请他们注意。修复可能涉及不重复使用组件,这也并不理想。所以这对他们来说是一个艰难的决定。但讨论绝对应该很有趣!如果您决定创建一个问题,请在此处发回问题链接:-)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

动态路由上的 Vue.js 2.0 转换未触发 的相关文章

  • 如何从 JavaScript 中计算 HTML 表格的渲染高度?

    调整窗口大小时 我需要知道表格有多大 以便我可以动态地很好地适应中间的所有其他内容 表格高度仅取决于动态加载的内容 如何在 JavaScript 中计算表格的渲染高度 您可以使用element offsetHeight https deve
  • 如何修复 Nuxt 中导航器/窗口/文档未定义的问题

    我试图确定 Nuxt 应用程序内的 UserAgent 和 Retina 信息 但应用程序抛出错误并显示导航 窗口未定义 我如何在 nuxt 应用程序中获取这些信息 const userAgent navigator userAgent t
  • AngularJS 使用 $apply 而不使用 $scope

    我开始使用 AngularJS 并且接受了用它来编写控制器的约定 而不是用 scope 所以我的控制器看起来像这样 myApp controller SomeController function this myModel id 1 nam
  • React 渲染中的不变违规或 React 中迭代和返回的正确方法

    我在 React 渲染中遇到了持续存在的问题 这段代码 jsx React DOM var AnswerRows React createClass componentDidMount function render function th
  • 在javascript中使用“return !0”有什么意义吗?

    如果您转到谷歌结果页面并运行rwt toString 你会看到这个函数的返回调用是 return 0 我想不出任何理由为什么这不会总是如此true 这只是一个简写吗true 还是还有更多事情发生 总是如此 但下载需要 2 个字节 0是 2
  • 如何使用 axios / jest 测试失败的请求

    我创建了一个非常小的应用程序 如果您传递硬币和数量 它可以计算为某些加密货币支付的总价格 我想测试错误 但我总是收到 收到的承诺已解决而不是被拒绝 我相信这是因为如果 url 错误 axios 仍然会解决承诺 我遇到的第二个问题是 我尝试测
  • 检查 DOM 元素是否为复选框

    如何检查给定的 DOM 元素是否为复选框 设想 我有一组文本框和复选框 其中的值是动态分配的 我没有办法识别 DOM 元素是复选框还是文本框 只使用普通的 javascript 你就可以做到 if el type el type check
  • 通知用户消息仍在输入中

    我正在使用 Laravel 5 6 7 Socket IO 和 vue js 我没有使用 Pusher 和 redis 下面是我的代码 用于向与我一对一聊天的用户发送消息 var url http localhost 6001 apps M
  • HTML5 服务器端事件:EventSource 与包装的 WebSocket

    HTML5 服务器发送事件 SSE API 是否只是 HTML5 WebSocket 之上的受限制的 基于事件的 API 在我看来 一个EventSource只是一个WebSocket that Cannot send data 使用tex
  • JavaScript 变量赋值与 OR 对比 if 检查[重复]

    这个问题在这里已经有答案了 在 JavaScript 中 我最近意识到你可以使用 OR 赋值的逻辑运算符 我想知道这是否被认为是不好的做法 特别是 我有一些具有可选数组输入的函数 如果输入是null or undefined我应该将它设置为
  • 提交前验证表单(比检查空字段更复杂)

    我有一个包含时间输入的表单 具体来说 开放时间和结束时间 当按下提交按钮时 它会转到一个 php 页面 其中这些输入将添加到数据库中 在允许提交表单之前我想检查一些事情 例如 我想确保开始时间早于 小于 结束时间 这是表格 Opens
  • Chrome Javascript 调试器暂停时不会重新加载页面

    有时 当我在 Chrome 中调试某些 javascript 并且暂停了 javascript 时 如果我尝试重新加载页面 chrome 只会 继续 调试器 单步执行到下一个断点 似乎没有任何方法可以强制 javascript 完全停止运行
  • Web SQL 数据库 + Javascript 循环

    我正在尝试解决这个问题 但我自己似乎无法解决 我正在使用 Web SQL DB 但无法让循环正常使用它 I use for var i 0 i lt numberofArticles 1 i db transaction function
  • 使用 JavaScript 的计时器

    我想使用java脚本实现计时器 我想随着间隔的变化而减少计时器 Example假设我的计时器从 500 开始 我想要根据级别减少计时器 例如1 一级定时器应减1 且递减速度应较慢 2 2级定时器应递减2 递减速度应为中等3 3级定时器应减3
  • Postman - 如何计算 JSON 响应中特定对象的出现次数

    我是 JSON 和 Postman 的新手 我相信我正在尝试做一些非常简单的事情 我创建了一个 GET 请求 它将获得如下所示的 JSON 响应 在下面的例子中我想得到count响应中所有 IsArchived 属性 这些属性的数量因响应而
  • 使用Promise而不拒绝它会导致内存泄漏吗? [复制]

    这个问题在这里已经有答案了 代码如下 function test value return new Promise function fulfill reject try fulfill true catch e throw e 我担心的是
  • 使用 React React-router 登录后重定向到主页,并且 usenavigate 不起作用?

    我希望用户在成功登录后重定向到主页 我将用户登录的 api 请求的数据存储在一个名为 currentUser 的变量中 因此如果 currentUser 为 true 它应该重定向到主页 这就是我处理登录请求的方式 export const
  • 如何根据所需表单输入的值更改 CSS 样式

    我想知道如何编写 javascript 来改变所需的表单元素的样式 如果它们有价值的话就改变它们 我想要做的是当所需的文本字段为空时 在它们周围有一个彩色边框 并在它们有值时删除边框样式 我想做的是编写一个 javascript 函数来检查
  • Laravel 使用 laravel-cors 和 axios 进行 POST 的“CSRF 令牌不匹配”

    我有一个正在运行的domain A拉拉维尔 5 8返回 API 的引擎网络路线 它必须检查来源才能只服务几个域 包括domain B Barryvdh laravel cors我安装了barryvdh laravel cors https
  • Serviceworker Bug event.respondWith

    我的 serviceworker 的逻辑是 当发生获取事件时 它首先获取包含一些布尔值 而不是 event request url 的端点 并根据我正在调用的值检查该值event respondWith 对于当前的获取事件 我正在提供来自缓

随机推荐

  • 如何在Startup.cs中注册通用类型的接口

    我在 ASP NET Core 中使用 Web API 这有效 services AddScoped
  • 有没有办法只将样式应用于 Safari?

    我正在尝试找到一种将 CSS 仅应用于 Safari 的方法 但我发现的所有内容也适用于 Chrome 我知道这些目前都是 WebKit 浏览器 但我在 Chrome 和 Safari 中遇到了 div 对齐问题 每个显示都不同 我一直在尝
  • 使用 Rmpfr/gmp 库,x>170 的阶乘(x)

    我想解决的问题是以下函数的无限和 对于总和 我使用 FTOL 确定标准 整个术语不会产生任何问题 直到z变得非常大 我期望的最大值z大约 220 正如您所看到的 第一项在阶乘 221 附近具有最大值 因此必须在阶乘 500 附近移动 直到达
  • 如何获取 py2exe 中可执行文件的当前目录?

    我在脚本中使用这段代码以跨平台的方式查明它的运行位置 SCRIPT ROOT os path dirname os path realpath file 很简单 然后我继续使用SCRIPT ROOT在我的脚本的其他区域 以确保一切都是正确相
  • 使用合作伙伴级证书将应用程序安装到 Samsung Tizen TV

    我在将开发的应用程序安装到三星电视设备时遇到问题 现在我找到了解决方案 我想分享我的经验 如果您添加合作伙伴级别权限 例如http developer samsung com privilege drminfo http developer
  • 使用ajax将数据从服务器发送到客户端

    我有一个场景 我正在制作一个基于内联网的网络应用程序 供公司内部使用 每当客户端更新应用程序中的任何内容时 其他客户端都应该更新 Steps 一个客户端更新一些任务 然后服务器自动将更新的数据发送给当前连接的客户端 因此 客户端无需向服务器
  • 使用“id”列中的键值从 MySQL 生成 PHP 数组

    我有一个 MySQL 数据库 如下所示 ID TEXT PARENTID 20 Item1 null 23 Item2 20 27 Item3 20 80 Item4 27 我想要的是在数组中检索这些数据 如下所示 Array 20 gt
  • 在 AHK 中如何更快地从屏幕区域获取像素数据?

    我知道对于某些事情 用 C 编写某些事情会更好 但我真的很希望能够在 AHK 中做到这一点 我希望能够从屏幕的 100x300 区域检索像素数据 但是PixelGetColor太慢了 下面的测试表明 每个像素大约需要 0 02 秒 即从整个
  • 如何在html和css中将图像放在圆圈内?

    图像应位于圆圈内 并且圆圈应具有白色背景 图像大小应小于圆圈并位于中心 我试试这个 icon i color fff width 40px height 40px border radius 20px font size 25px text
  • 使用 spring 3 安全性在 jsp 页面中访问我的自定义用户对象

    我已经实施了UserDetailsService 它返回一个实例MyUser 它实现了UserDetails public MyUser loadUserByUsername String arg0 现在我想访问我的自定义 getter 字
  • 在 Windows Phone 7 上使用 Tweetsharp 获取最新推文

    我只想使用 Tweetsharp 获取我的 Windows Phone 应用程序的最新推文 以下是我所做的 使用 Nuget 包管理器安装 Tweetsharp 将我的应用程序注册到 Twitter 开发者网站 获取消费者密钥 消费者秘密
  • .NET 二进制序列化对象并引用其他对象。 。 。会发生什么?

    如果您有一个引用其他对象 例如实例 B 和 C 的对象实例 A 并且您将 A 二进制序列化到文件中 会发生什么情况 您现在有包含 A B 和 C 的序列化数据吗 它到底是如何运作的 如果我反序列化数据会得到什么 甲 乙 丙 也请随意包含内部
  • Matplotlib:如何使背景透明?

    我找到了使绘图本身透明的方法 但是如何使背景透明呢 有没有办法在没有Qt的情况下做到这一点 我希望绘图位于背景窗口上方 例如 假设我正在运行 Chrome 我希望绘图位于 chrome 窗口上方 并且其内容可见 如果将绘图保存为图像 则可以
  • 如何在 React 中使用 Google Cloud Run Dashboard 上声明的 ENV 变量

    我正在使用 Dockerfile 将 create react app 服务部署到 Google Cloud Run 上 但我想不再在 env 文件中声明 env 变量 而是在 Google Cloud Run 的仪表板上声明它们 如下所示
  • EF Core 迁移:无法加载程序集“AssemblyName”

    命令 Add Migration InitialCreate 生成以下错误消息 无法加载程序集 MathModelApp 确保启动项目 MathModelApp 引用它 错误信息是什么意思 我使用的是netcore 2 1 目标平台是x86
  • 在WP7中提取声谱数据

    当我意识到 MediaLibrary 的 GetVisualizationData 在 WP7 上返回一堆零时 我非常不满意 我可以应用哪些其他方法来从 MediaLibrary 的歌曲集合中计算和提取声谱数据 附 它的书写方式表明我正在从
  • 如何在 C# 中以最快的方式检索 HTMLDocument 的所有文本节点?

    我需要对 HTMLDocument 的所有文本节点执行一些逻辑 这就是我目前的做法 HTMLDocument pageContent HTMLDocument webBrowser2 Document IHTMLElementCollect
  • npm install 挂在 IdealTree 步骤上

    我正在尝试安装 npm 但它始终挂在 IdealTree 步骤上 这是 verbose 的跟踪 npm verb cli usr bin node usr bin npm install verbose npm info using ema
  • d3 - 将数据附加到轴以重新缩放

    我想在显示实际值和比例百分比之间切换 目前 数据是从 csv 文件导入的 我处理 csv 以查找数据的域并很好地显示图表 我可以切换到显示百分比 因为轴域变为 0 到 100 但我希望能够切换回实际数据域 而无需重新处理 csv 文件 是否
  • 动态路由上的 Vue.js 2.0 转换未触发

    我发现转换不会在带有参数的动态路由上触发 例如 使用下面的代码 当我在 chapter 1我去 chapter 2没有过渡 但当我在 chapter 1我去 profile 1有一个 main js file require normali