vue-router4 页面跳转问题

2022-03-28 16:58:57 +08:00
 7911364440

router.push('xxx')的时候一直跳转到 / 路径,但是使用<router-link :to="toPage2()"></router-link>这种标签就可以正常跳转

vue3 + vue-router4

<template>
  <h1>page1</h1>
  <button v-on:click="toPage2()">toPage2</button>
</template>

<script>
import {useRouter} from 'vue-router'

export default {
  name: "page1",
  setup () {
    const router = useRouter()
    const toPage2 = () => {
      router.push('page2')
    }
    return {
      toPage2
    }
  }
}
</script>

<template>
  <h2>page2</h2>
  <button v-on:click="toPage1()">toPage1</button>
</template>

<script>
import {useRouter} from "vue-router";

export default {
  name: "page2",
  setup () {
    const router = useRouter()
    const toPage1 = () => {
      router.push('page1')
    }
    return {
      toPage1
    }
  }
}
</script>

import {createRouter, createWebHistory} from 'vue-router'

const routes = [
  {
    path: "/",
    redirect: 'page1'
  },
  {
    path: '/page1',
    name: 'page1',
    component: () => import('@/view/page1.vue')
  },
  {
    path: '/page2',
    name: 'page2',
    component: () => import('@/view/page2.vue')
  },
]

const router = createRouter({
  history: createWebHistory(),
  routes
})

export default router
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'

const app = createApp(App)
app.use(router)
app.mount('#app')
<template>
  <router-view/>
</template>

<script>

export default {
  name: 'App',
}
</script>
1383 次点击
所在节点    程序员
5 条回复
yxcoder
2022-03-28 17:01:55 +08:00
router.push({name: 'page2'})

或者

router.push('/page2')

能不能行
7911364440
2022-03-28 17:28:55 +08:00
@yxcoder 试过了,都不行,就总是跳转到 / 路径
sechi
2022-03-28 20:10:09 +08:00
我运行了一下你的代码,是可以正常使用的。建议你排查一下是不是系统、浏览器版本、vue 版本等问题
rimworld
2022-03-28 22:05:35 +08:00
把 path:/的配置 放到最后?
MissSixty
2022-03-28 22:15:13 +08:00
{
path: "/",
redirect: 'page1',
children:[
{
path: '',
name: 'page1',
component: () => import('@/view/page1.vue')
}
]
}
这两个不应该是父子的关系吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/843428

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX