问题标签 [vue-router4]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
21 浏览

webpack - vue routes 4 无法与 laravel 6 一起正常工作

我有带有 vue3 和 vue-router4 以及 laravel-mix6 webpack-mix 的 laravel 6 项目。我处理来自 laravel 的前缀部分,然后使用 vue-routes 处理同一模块的页面之间的路由,一旦升级到 vue 3,它就可以在 vue 2 上正常工作,例如:

  • -当我去 http://localhost:8000/prefix# ->它工作正常。
  • - 当我去 http://localhost:8000/prefix#/pageX ->404 not found 。
  • - 当我在邮件页面添加并单击它时 -> 它路由到正确的组件但错误的 url http://localhost:8000/pageX 删除了前缀。我尝试使用 base / publicPath 属性但仍然无法正常工作
0 投票
2 回答
65 浏览

vue.js - 如何在 Vuejs 中触发挂载事件

我有一个侧边栏,您可以在下面看到:

因此,当单击侧边栏中的链接时,路线将更改为“http://.../my-account/profile”或“http://.../my-account/my-tickets”。但问题是 currentIndex 因此没有改变,内容没有改变,而且我也无法将活动类添加到链接中。那么您认为我可以如何根据路线更改 currentIndex。如果我触发一个事件,你能帮我解决这个问题吗,因为我不知道如何在 Vue 中执行它。我尝试编写一个类似 checkRouter() 的函数,但没有成功。为什么你认为它正在发生?所有解决方案将不胜感激。

0 投票
0 回答
22 浏览

javascript - 如何通过 Vuex 商店中的 id 渲染特定任务

当我单击该 taskId 时,我正在尝试呈现特定的 id。现在,当我单击它时,它会将我带到路线/tasks/details/id#并显示 URL 中的特定 ID,但详细信息页面显示所有任务而不是我想查看的特定任务。我非常感谢您抽出宝贵时间对此进行审查,并在此先感谢您。

在 Vuex 中: 从“vuex”导入 { createStore };

},

在任务列表页面中:

ITEMSLIST组件:(将 props 传递给 TaskList 的组件)

最后,TaskDetails页面(将使用从 state.$store 来自 VUEX 的道具传递的 id 显示详细信息:

0 投票
0 回答
11 浏览

vuejs3 - router-link 重新加载页面

<router-link>在组件中有一个,我想去创建帐户页面,然后重新加载页面。但作为默认行为,它不会在进入页面后重新加载页面。

代码是:

0 投票
2 回答
117 浏览

vue.js - vue router 4 next() 回调警告

我一直在尝试修复这个 vue-router 警告,但没有成功:

从“/”到“/”时,在一个导航守卫中多次调用“下一个”回调。它应该在每个导航守卫中准确调用一次。这将在生产中失败。

我已经阅读了官方文档(https://next.router.vuejs.org/guide/advanced/navigation-guards.html#global-before-guards),但是在进行建议的更改时,我不断获得无限的下一个循环,所以我我显然做错了什么。

我想做的是:让未经身份验证的用户只能导航到“/”路线。如果他们尝试进入受保护的路线,则会被重定向到“/”。让经过身份验证的用户直接登陆“/mapping”并跳过“/”路线。然后他们可以导航到任何受保护的路线。

我用“let user = projectAuth.currentUser”验证身份验证。

提前感谢您的提示

0 投票
0 回答
54 浏览

javascript - 使用内部路由器创建多个 Vue 组件

是否可以使用 Vue Router 为通过 for 循环添加的组件创建内部导航?

我可以使用内部状态变量和一堆 v-if 语句来显示所需的视图,但是能够为组件定义内部路由以使用 vue-router 控制视图状态会很好。

我尝试添加一个新的路由器,createRouter()但我不知道如何use为组件添加路由器(如createApp().use(mainRouter);

主路由器的应用程序视图

控制板

编辑 1

这种骇人听闻的废话非常接近:

  • 添加:name="id"<router-view>
  • 与组件对象一起使用addRoute,键为id

这使我可以转到 /home/0/content,这会将ContentView组件添加到面板中。但是,正如@jeremy castelli 所建议的那样,我一次只能这样做Panel一次。因此,如果我转到/home/0/content,面板 0 将显示内容。如果我去/home/1/content,面板 0 将停止显示内容,面板 1 将显示它 - 不是我所追求的

编辑2:

最终,我放弃了这个项目的这个想法,并回到一个反应state字符串和一系列视图组件v-if="state === 'this-state'"来管理它们。如果我找到更好的方法,我可能会回去重构

编辑 3(最终)

建议将每个子组件放入一个<iframe>中,以便它们每个都有一个单独的 URL。

这将要求面板是一个单独的应用程序,但这基本上就是这样做的

0 投票
1 回答
20 浏览

typescript - 将参数添加到一条路线后,所有其他路线都停止工作

在向其中一个路由添加参数后,所有其他都停止正确渲染(即路由器视图根本不起作用)。路线/download/:id按预期工作......我在设置中遗漏了什么吗?我尝试在没有参数的情况下离开和删除/download路径,但它没有任何改变......我也尝试浏览文档,但我找不到他们遇到这种情况的例子(要么像这样工作,要么他们更经常只使用一条路线在示例中)

路由器/index.ts:

main.ts:

应用程序.vue:

主页.vue:

0 投票
0 回答
25 浏览

vue.js - Vue 路由器 | 开玩笑 | Vue 测试工具 | 基于多个测试的 TypeError:TypeError:无法重新定义属性:$route

版本:

  • Vue:“^3.2.4”
  • Vue路由器:“4.0.12”
  • vue-test-utils:“^2.0.0-rc.15”
  • 打字稿:^4.3.4
  • ts-jest:ts-jest^27.1.3

开玩笑配置转换:

我不确定这是否是我的代码造成的,但我在网上看不到任何东西,所以我认为最好在这里发布。

在我的测试套件中,我将插件中的商店全局注册到一个文件中,该文件位于开玩笑的 setupFilesAfterEnv 配置中,如下所示:

在我的测试中,我只是在打电话

通过 vue-router 导航,然后调用

在我的测试文件中,第一次测试运行后出现错误。没有错误的第一次测试很好。

错误:

请问有人对此有任何想法吗?

0 投票
0 回答
28 浏览

vue.js - .replace 或 .push 到别名 - Vue 路由器 4

所以我正在尝试在我的网站上实现一项功能。基本上,如果您打开一个模式,路由器会推送(或 .replace())到别名“/url-opened”,因此如果有人在浏览器中按下后退按钮,它不会转到其他页面,而是转到“/url ”。

我已经在我的 vue 2 项目中使用了这个,但是现在使用 vue 3 它不起作用。

0 投票
1 回答
45 浏览

vue-router - Vue Router 滚动行为不会滚动到 id

当主页在路径“/”处加载时,两个组件都正确加载,我可以手动向下滚动到副标题部分,这样就可以了。这两个组件都有一个 100vh 类。当我使用“a”标签时,它应该会转到 id,但不会使用路由器链接。

subhead 是 Subheadsection 中 div 的 id。

HeroHeadline 的一个组件中有一个路由链接

我在 scrollBehavior 函数中尝试了很多东西,但似乎没有任何效果。控制台中没有错误或警告。

任何意见,将不胜感激。

路由器文件

主页

英雄主线

HeroHeadline 的一个组件中有一个路由链接

堆栈