Vue3 整合vue-router

1.准备工作

  • 1.1 安装

    vue 3安装 vue-router@4

    npm install vue-router@4 --S

  • 1.2 配置

    • 初始化路由对象

      createRouter 用于初始化路由对象,接受一个选项对象作为参数

      初始化路由最重要的是配置routes来确定整个项目的路由匹配规则

      import { createRouter, createWebHistory } from 'vue-router'
      import SetupMain from "@/components/01_Composition组合函数/01.setup/SetupMain.vue";
      
      
      //路由对应表
      
      const pageRoutes = [
          {path: '/', redirect:"/setupMain" },
          {
              path: '/setupMain',
              name: 'setupMain',
              meta: {isAuth: false},
              //懒加载
              component: SetupMain
          },
          {
              path: '/suscomp',
              name: 'suscomp',
              meta: {isAuth: false},
              //懒加载
              component: () => import('../components/03.新的标签/01.Teleport/CompA.vue')
          }
      
      ]
      const router = createRouter({
           history: createWebHashHistory(),//hash模式
         	//createWebHistory(process.env.BASE_URL),histroy模式
          routes: pageRoutes})
      
      export default router
      
    • 挂载路由

      使用app.use()将创建的路由对象挂载到全局中,

      挂载之后,我们可以在全局中使用$router$route<router-view/><router-link/> 这些api

      //修改main.js
      import { createApp } from 'vue'
      import App from './App.vue'
      import router from "@/router";
      
      const app = createApp(App);
      app.mount('#app')
      app.use(router);
      
      

2.Api改变

原来的vue2路由是通过this. r o u t e 和 t h i s . route和this. routethis.router来控制的。现在vue3有所变化,useRoute相当于以前的this. r o u t e ,而 u s e R o u t e r 相当于 t h i s . route,而useRouter相当于this. route,而useRouter相当于this.router

$routevue2)修改为 useRoutervue3

使用useRoute需要引入 import {useRouter,useRoute} from "vue-router";

import {useRouter} from "vue-router";
setup(){

  let router = useRouter();
   let route = useRoute();
  console.log("接收到的参数" ,route.query)
 
  return{
    //将router交出去
    router
  }
}

//代码中可以利用这种方式进行页面跳转
router.push('/suscomp')
router.push({path:'/suscomp',query:{a:1,b:2}})

//利用route接收query或params参数
route.query

想在B组件中想拿到传来的参数则必须
方法1:使用useRoute创建route实例来拿到prams参数,
方法2:使用router实例 也就是router.currentRoute._value.params拿到传来的参数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LvhaoIT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值