gpt4 book ai didi

vue.js - vuejs 路由器 - this.$route 在刷新时始终为空

转载 作者:行者123 更新时间:2023-12-04 13:19:29 24 4
gpt4 key购买 nike

我正在尝试将类 nav-active 设置为正确的导航元素,基于您第一次直接访问 webapp 的 url。

我有几条路线:

export default new Router({
mode: 'history',
routes: [
{
path: '/',
name: 'home',
component: () => import('./views/Home.vue')
},
{
path: '/account',
name: 'account',
component: () => import('./views/Account.vue')
}
]
});

这是我的导航栏组件 (NavBar):

export default {
name: 'NavBar',
components: {
NavLogo,
NavItem
},
data() {
return {
navItems: [
{ /* root navigation */
id: 0,
type: 'root',
name: 'home',
route: '/',
active: this.$route.name === 'home' },
{
id: 1,
type: 'root',
name: 'account',
route: '/account',
active: false
}

}
}
}

navItems 中的 active bool 值的状态决定了导航元素是否应该有 nav-active 类。我正在尝试使用当前路由来确定 active 应该是 true 还是 false,通过这种方式使用它:

active: this.$route.name === '账户'

但是例如我直接从以下位置进入此仪表板:http://localhost:8000/accountthis.$route的项目都是空的,路径总是/

非常感谢您的帮助,谢谢

最佳答案

默认情况下,您不会使用此方法跟踪 this.$route.name 更改。尝试创建一个解析为 this.$route.name 的计算属性,并在您的数据属性声明中使用它。事实上,您可以将整个内容放在计算属性中,因为您不太可能更改它。

export default {
name: 'NavBar',
components: {
NavLogo,
NavItem
},
computed: {
routeName(){
return this.$route.name
},
navItems(){
return [
{ /* root navigation */
id: 0,
type: 'root',
name: 'home',
route: '/',
active: this.routeName === 'home' },
{
id: 1,
type: 'root',
name: 'account',
route: '/account',
active: false
}
]
}
}
}

关于vue.js - vuejs 路由器 - this.$route 在刷新时始终为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55640288/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com