Vue3项目使用Vue-router4(对比vue2配合Vue-router3)

举报
青年码农 发表于 2022/08/24 22:42:45 2022/08/24
【摘要】 使用脚手架搭建的Vue3项目默认使用的路由版本是4,由于Vue3和Vue2写法差异较大,所以需要从新熟悉Router用法,本篇文章比较下两个版本的写法差异,不做深层次的讲解,主要是我也不懂。 1 Vue2配合Vue-router3 说多了没用,直接上代码 import Vue from&nbsp...

使用脚手架搭建的Vue3项目默认使用的路由版本是4,由于Vue3和Vue2写法差异较大,所以需要从新熟悉Router用法,本篇文章比较下两个版本的写法差异,不做深层次的讲解,主要是我也不懂。

1 Vue2配合Vue-router3

说多了没用,直接上代码


   
  1. import Vue from 'vue'
  2. import VueRouter from 'vue-router'
  3. Vue.use(VueRouter)
  4. const routes = [{
  5.   path: '/',
  6.   name: '首页',
  7.   component: () =>
  8.     import/* webpackChunkName: "page" */ '@/views/index'),
  9.   meta: {
  10.     requireAuth: true,
  11.   },
  12.   children: [{
  13.     path: '/index',
  14.     name: '首页',
  15.     component: () =>
  16.       import/* webpackChunkName: "page" */ '@/views/wel'),
  17.     meta: {
  18.       requireAuth: true,
  19.     }
  20.   }]
  21. }]
  22. const router = new VueRouter({
  23.   mode: 'history',
  24.   base: process.env.BASE_URL,
  25.   routes
  26. })
  27. export default router

上面这种写法是比较通用的,配置的是动态路由,前台只配置常用的几个即可。

2 Vue3配合Vue-router4


   
  1. import { createRouter, createWebHistory } from "vue-router";
  2. import login from "../views/login.vue";
  3. import index from "../views/index.vue";
  4. const routes = [
  5.   {
  6.     path: "/login",
  7.     name: "登录",
  8.     component: login,
  9.     meta: {
  10.       requireAuth: false,
  11.     },
  12.   }, {
  13.     path: "/",
  14.     name: "首页",
  15.     component: index,
  16.     meta: {
  17.       requireAuth: true,
  18.     },
  19.   },
  20. ];
  21. const router = createRouter({
  22.   history: createWebHistory(process.env.BASE_URL),
  23.   routes
  24. });
  25. export default router;

导入createRouter, createWebHistory这两个方法,使用createWebHistory方法创建一个routerHistory对象,使用 createRouter 创建路由器。

3 跳转

Vue3和Vue2版本跳转区别挺大,因为this的问题。

Vue2跳转


   
  1. this.$router.push({
  2.   path: "/index"
  3. });

Vue3跳转


   
  1. import { useRoute, useRouter } from "vue-router";
  2. export default {
  3.   setup(props, context) {
  4.     // 获取路由器实例
  5.     const router = useRouter();
  6.     // route是响应式对象,可监控器变化
  7.     const route = useRoute();
  8.     const onSubmit = e => {
  9.       e.preventDefault();
  10.       validate()
  11.         .then(() => {
  12.           login(state.login).then(res => {
  13.             if (res.code == 0) {
  14.               router.push("/");
  15.             }
  16.           });
  17.         })
  18.         .catch(err => {});
  19.     };
  20.   }
  21. };

可以看到,Vue3,需要单独引入。

文章来源: blog.csdn.net,作者:NMGWAP,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/NMGWAP/article/details/125067093

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。