我如何以正确的方式获得活动路线?

Posted

技术标签:

【中文标题】我如何以正确的方式获得活动路线?【英文标题】:How do i get the active route the correct way? 【发布时间】:2019-12-19 00:05:57 【问题描述】:

我正在使用典型的 Vue 路由器配置 as shown in their guide。我想要的是在router-view 之外显示所显示路线的名称。所以我需要询问路由器哪个路由是活动的。

我有found in the router API,它有一个currentRoute 属性,我希望它能给我活动路线,我会读它的名字,然后我就可以了。

为了测试这一点,我像这样导入了路由器:

import router from '@/router.js';

然后尝试读取活动路由的名称:

data: function()
    return 
        test: router.currentRoute.name
    

并用 test 显示它。

它似乎在做我想做的事,但它非常不一致且不可靠。我在任何地方都没有收到任何错误,路线名称也没有出现,而且似乎不起作用。但是(有时)如果我更改组件模板中的某些内容,例如删除元素或添加元素,并且 Vue 热重新加载我的应用程序,路由名称会出现并继续工作。从那里,如果我刷新,它不会再次出现。

我做错了什么,读取活动路由名称的正确方法是什么?


子问题

为此使用router.beforeEach 是个好主意吗?因为这似乎工作正常,但这似乎是一种错误的方法......

【问题讨论】:

你试过了吗??? ***.com/questions/53126710/… @kcsujeet 感谢您的建议,我创建了一个计算属性并从中执行:return router.currentRoute.name;。同样的事情会发生,在热重载后,路由名称出现,刷新后消失。 【参考方案1】:

路由对象表示当前活动路由的状态。它 包含当前 URL 的解析信息和路由记录 由 URL 匹配。

Reference.

您可以通过this.$route;访问当前路由对象。

【讨论】:

以上是关于我如何以正确的方式获得活动路线?的主要内容,如果未能解决你的问题,请参考以下文章

如何以正确的方式使用英特尔 oneAPI?

如何获得活动屏幕尺寸?

如何在 Laravel 8 上获得正确的路线

Laravel 5:如何获取所有路线的路径?

有没有办法获得被推送的路线的上下文以在其中显示小吃店?

使用 BootstrapVue 以编程方式编写导航链接的正确方法