【发布时间】:2022-01-21 13:57:21
【问题描述】:
我有一个导航栏,里面有一个用户可以点击的菜单。一些链接需要打开一个新标签。这就是我所拥有的,但我无法让它工作。
<template>
<nav>
<v-app-bar text app color="blue">
<v-app-bar-nav-icon class="white--text" @click="drawer = !drawer"></v-app-bar-nav-icon>
<v-app-bar-title class="text-uppercase white--text">
<span class="font-weight-light">Logo</span>
<span>Global</span>
</v-app-bar-title>
</v-app-bar>
<v-navigation-drawer v-model="drawer" app class="grey lighten-1">
<v-list>
<img class="ml-5 mb-3" src="../assets/Logo-Blue.png" width="70" />
<v-list-item v-for="link in links" :key="link.text" router :to="link.route" @click="go(link)">
<v-list-item-action>
<v-icon>{{ link.icon }}</v-icon>
</v-list-item-action>
<v-list-item-content>
<v-list-item-title> {{ link.text }} </v-list-item-title>
</v-list-item-content>
</v-list-item>
</v-list>
</v-navigation-drawer>
</nav>
</template>
<script>
export default {
data() {
return {
drawer: true,
links: [
{ icon: 'home', text: 'Dashboard', route: '/dashboard', newTab: false },
{ icon: 'leaderboard', text: 'Stats', route: 'www.google.com ', newTab: true },
]
}
},
methods: {
go(link) {
console.log('go run ...')
console.log(link)
console.log(process.env.APP_URL)
if (!link.newTab) {
this.$router.push({ path: link.route })
} else {
window.open(link.route)
}
}
}
}
</script>
src/router/index.js
const router = new VueRouter({
mode: 'history',
base: process.env.BASE_URL,
routes
})
export default router
我做错了吗?
打开一个新选项卡似乎可以工作,但它一直在我的本地主机 URL 前面。
【问题讨论】:
-
不应使用 window.open 您的 vue-router,因此不应添加您的基本 URL。您是否只是在更改后尝试刷新浏览器缓存?
标签: javascript vue.js vuejs2 vue-component vuetify.js