Vue3使用路由跳转的坑

技术栈:Vue3+Vite 3+Vant 3

错误的写法:
const router = useRouter();写在方法里

<script setup lang="ts">
import { useRouter } from 'vue-router';

const onClickLeft = () => alert('左');
const onClickRight = () => { 
  const router = useRouter()
  router.push({path: '/search'})
};
</script>

会报错误:
在这里插入图片描述

正确的写法:

<script setup lang="ts">
import { useRouter } from 'vue-router';

const router = useRouter();

const onClickLeft = () => alert('左');
const onClickRight = () => { 
  //切记不可将router定义在方法中,这样他不是响应式数据,会报错
  // const router = useRouter()
  router.push('/search');
};
</script>

<template>
  <van-nav-bar 
    title="标题" 
    left-text="返回" 
    left-arrow
    @click-left="onClickLeft"
    @click-right="onClickRight">
    <template #right>
      <van-icon name="search" size="18" />
    </template>
  </van-nav-bar>
  <div id="content">
    <router-view/>
  </div>
</template>

<style scoped>
</style>

学习vue3的链接

Vue3中,使用路由跳转通常通过Vue Router库来实现。Vue Router是一个非常流行的前端路由库,它帮助我们将单页应用(SPA)的不同部分组织成可导航的视图。 以下是如何在Vue3项目中使用路由跳转的基本步骤: 1. **安装Vue Router**: 首先,在项目中安装Vue Router,可以通过npm或yarn进行安装: ```bash npm install vue-router # 或者 yarn add vue-router ``` 2. **配置`router.config.js`**: 在`src/router`目录下创建一个`index.js`文件,定义你的路由规则。例如: ```javascript import { createRouter, createWebHashHistory } from 'vue-router'; import Home from '@/views/Home.vue'; import About from '@/views/About.vue'; const routes = [ { path: '/', name: 'Home', component: Home, }, { path: '/about', name: 'About', component: About, }, ]; const router = createRouter({ history: createWebHashHistory(), // 使用浏览器的哈希历史模式 routes, }); export default router; ``` 3. **在组件中使用`this.$router`**: 在需要导航的地方,比如按钮点击事件或导航链接上,你可以使用`this.$router.push`或`this.$router.go`来导航: ```html <!-- 在一个组件内的按钮 --> <button @click="goToAbout"> Go to About </button> <!-- 使用组件内部的方法 --> methods: { goToAbout() { this.$router.push('/about'); } } ``` 4. **设置`<router-view>`**: 在App.vue或其他布局组件中,添加`<router-view>`标签,它会根据当前的路由显示相应的组件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值