vue2和vue3中使用Vue Router的些许不同

Vue-cli 3.x  的更新进带来了 Vue Router 的一系列改进,有以下常用几点。

第一. mode ( 模式 ) 
由原来vue-cli 2.x 的 mode: "history" 更改为 vue-cli 3.x  history: createWebHistory()

// vue2-router

import VueRouter from "vue-router"
const router =new VueRouter ({
    mode:'history',
    ..
})

// vue3-router
import { createRouter, createWebHistory } from 'vue-router'
const router = createRouter({
    history: createWebHistory(),
     ...
})

相比较 vue2 来讲 多了一步引用 vue-router API 和 创建路由方式的不同 。

第二. base ( 基础路径 ) 
由原来 vue-cli 2.x 的 base: "/" 更改为 传给 createWebHistory() 的第一个参数作为 base。

注意!!!

base选项仅影响生成的路由链接(<router-link>和编程式导航),而不会对页面的实际 URL 路径产生影响。真实的 URL 路径是由服务器处理的。

基础路径使用createWebHistory才能发挥作用,放在createWebHashHistory上没用。

//vue2-router

import VueRouter from "vue-router"
const router =new VueRouter ({
     mode: 'history',
     base:  '/',
})

// vue3-router
import { createRouter, createWebHistory }  from 'vue-router'
const router = createRouter({
    history: createWebHistory('/'),
     ...
})

在Vue Router中,createWebHistory('/')中的斜杠 / 表示基本路径(base path)。它用于指定应用程序部署的根目录。

当您使用普通模式(history mode)时,Vue Router使用HTML5 History API来管理路由状态。这意味着您的应用程序的URL不再需要#符号,并且可以更具语义性。

当您设置基本路径为 / 时,表示您的应用程序将部署在域名的根目录上。例如,如果您的应用程序部署在 https://example.com/ 上,则基本路径应该设置为 /

如果您将基本路径设置为其他值,比如 /myapp/,则表示您的应用程序将部署在 https://example.com/myapp/ 上,其中 /myapp/ 是相对于根目录的子目录。

通过在 createWebHistory() 中指定基本路径,Vue Router就能够正确地处理路由并生成正确的URL。

第三. 捕获/匹配所有路由
由原来 vue-cli 2.x 的  "/user/*" 更改为 用带有自定义正则表达式的参数进行定义:/:catchAll(.*)

'/:catchAll(.*)'表示捕获 / 匹配所有路由 ( /* ) 
catchAll是一个vue router路径配置中的路径表达式 , 使用通配符参数语法 , 用于匹配所有未匹配到其他路由的路径。

:冒号前缀,表示可匹配任何路径片段,(.*)是一个正则表达式,用于匹配零个或多个任意字符,包括斜杠

一般会用于404页面或动态路由的功能;

// vue2-router
const router =new VueRouter ({
    mode:'history',
    base:  '/',
    routes: [
        { path: '/user/:edit*'},
    ]
})

// vue3-router
const router = createRouter({
    history: createWebHistory(),
    routes: [
        {
            path:'/user/:edit:catchAll(.*)',
        }
    ]
})

  • 25
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值