vue2 和 vue3 配置路由有什么区别

vue2 和 vue3 配置路由有什么区别

Vue 2 和 Vue 3 在配置路由方面存在一些区别,主要体现在以下几个方面:

初始化路由器实例

  • Vue 2 中,通过 new Router() 创建路由实例,并传入配置对象。

    import Vue from 'vue'
    import Router from 'vue-router'
    import Home from './views/Home.vue'
    
    Vue.use(Router)
    
    const router = new Router({
      routes: [
        { path: '/', component: Home },
        // ...其他路由配置
      ]
    })
    
  • Vue 3 中,使用 createRouter 函数创建路由实例,并且需要显式地指定 history 类型,例如 createWebHistorycreateWebHashHistory

    import { createApp } from 'vue'
    import { createRouter, createWebHistory } from 'vue-router'
    import Home from './views/Home.vue'
    
    const router = createRouter({
      history: createWebHistory(),
      routes: [
        { path: '/', component: Home },
        // ...其他路由配置
      ]
    })
    

注入到应用中

  • Vue 2 中,在 new Vue() 的选项对象中直接挂载路由实例。

    new Vue({
      router,
      render: h => h(App),
    }).$mount('#app')
    
  • Vue 3 中,使用 createApp 创建的应用实例上有一个 .use() 方法来注册插件,包括路由。

    const app = createApp(App)
    app.use(router)
    app.mount('#app')
    

动态路由参数和捕获所有路由

  • Vue Router v4(与Vue 3配合)对通配符路由(catch-all routes)的处理方式有所变化。在 Vue 2 中,可以简单地定义一个星号 (*) 路由作为 catch-all,但在 Vue 3 中必须使用带有自定义正则表达式的参数来实现。

Vue 2:
javascript { path: '*', redirect: '/not-found' }

Vue 3 (with Vue Router v4):
javascript { path: '/:pathMatch(.*)*', name: 'not-found', component: NotFoundComponent }

编程式导航 API

  • Vue Router 在 Vue 2 和 Vue 3 中都提供了类似的编程式导航方法如 router.push(), router.replace(), router.go() 等,但它们在 Vue 3 中是作为 router 实例上的方法暴露出来的,而不再依赖于全局的 this.$router

异步加载组件

  • Vue 2 使用 import() 动态导入语法与 component: () => import('./MyComponent.vue') 结合来异步加载路由组件。
  • Vue 3 继续支持这种方式,但在 Vue Router v4 中提供了更灵活的 loadComponent 配置项以支持异步加载组件。

Vue 3 的路由配置逻辑和 Vue 2 相似,但在实际使用时有一些API调用和细节上的差异,以及对Composition API更好的兼容性。

同时,Vue Router v4 对 Vue 3 的支持也带来了新的特性和最佳实践。

vue2 如何 使用路由

在Vue 2中使用路由,首先需要安装vue-router库,并进行基本的配置以设置不同的页面组件与URL路径之间的映射。以下是一个简化的步骤示例:

第一步:安装 vue-router

npm install vue-router@^3 # 确保安装的是Vue 2版本的vue-router
# 或者
yarn add vue-router@^3

第二步:创建路由组件

假设你有两个页面组件 Home.vueAbout.vue

// Home.vue
<template>
  <div>Welcome to the Home Page</div>
</template>

// About.vue
<template>
  <div>About this Application</div>
</template>

第三步:配置路由

在项目中创建一个文件(如src/router/index.js)来配置路由:

import Vue from 'vue'
import Router from 'vue-router'
import Home from '@/components/Home'
import About from '@/components/About'

Vue.use(Router)

export default new Router({
  routes: [
    {
      path: '/',
      component: Home,
      name: 'Home',
    },
    {
      path: '/about',
      component: About,
      name: 'About',
    },
  ],
})

第四步:在主应用入口注册路由

修改src/main.js,确保将创建的路由实例注入到Vue实例中:

import Vue from 'vue'
import App from './App.vue'
import router from './router' // 导入上面创建的路由配置

new Vue({
  router, // 注册路由
  render: h => h(App),
}).$mount('#app')

第五步:在应用中使用 <router-link> 组件导航

在任意模板中,比如 App.vue 中,可以使用 <router-link> 来创建链接导航:

<template>
  <div id="app">
    <nav>
      <router-link to="/">Home</router-link> |
      <router-link to="/about">About</router-link>
    </nav>
    <router-view></router-view> <!-- 这里将会显示当前激活的路由组件 -->
  </div>
</template>

现在当你运行应用程序并点击“Home”或“About”,Vue Router 将会根据定义的路由规则自动切换显示对应的组件内容。

更多详细内容,请微信搜索“前端爱好者戳我 查看

vue3 如何 使用路由

在Vue 3中使用路由,你需要安装vue-router@4(与Vue 3兼容的版本),然后进行基本配置以设置不同的页面组件与URL路径之间的映射。以下是一个简化的步骤示例:

第一步:安装 vue-router

npm install vue-router@^4 # 确保安装的是Vue 3版本的vue-router
# 或者
yarn add vue-router@^4

第二步:创建路由组件

假设你有两个页面组件 Home.vueAbout.vue

// Home.vue
<template>
  <div>Welcome to the Home Page</div>
</template>

// About.vue
<template>
  <div>About this Application</div>
</template>

第三步:配置路由

在项目中创建一个文件(如src/router/index.js)来配置路由:

import { createRouter, createWebHistory } from 'vue-router'
import Home from '@/components/Home.vue'
import About from '@/components/About.vue'

const routes = [
  {
    path: '/',
    component: Home,
    name: 'Home',
  },
  {
    path: '/about',
    component: About,
    name: 'About',
  },
]

export default createRouter({
  history: createWebHistory(),
  routes,
})

第四步:在主应用入口注册路由

修改src/main.js,确保将创建的路由实例注入到根组件的创建函数中:

import { createApp } from 'vue'
import App from './App.vue'
import router from './router' // 导入上面创建的路由配置

const app = createApp(App)

app.use(router)

app.mount('#app')

第五步:在应用中使用 <router-link> 组件导航

在任意模板中,比如 App.vue 中,可以使用 <router-link> 来创建链接导航:

<template>
  <div id="app">
    <nav>
      <router-link to="/">Home</router-link> |
      <router-link to="/about">About</router-link>
    </nav>
    <router-view></router-view> <!-- 这里将会显示当前激活的路由组件 -->
  </div>
</template>

现在当你运行应用程序并点击“Home”或“About”,Vue Router 将会根据定义的路由规则自动切换显示对应的组件内容。

此外,在Vue 3的setup语法糖或者Composition API中访问路由对象和进行编程式导航:

import { useRouter } from 'vue-router'

export default {
  setup() {
    const router = useRouter()

    function goToAbout() {
      router.push('/about') // 跳转至关于页面
    }

    return {
      goToAbout,
    }
  },
}

vue2 和 vue3 配置路由有什么区别

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue2和Vue3在路由方面有一些区别。主要的区别如下: 1. 路由的安装方式:在Vue2中,我们使用Vue Router插件来实现路由功能,需要先安装和引入插件。而在Vue3中,路由功能已经内置到了Vue核心库中,不再需要额外安装插件。 2. 路由的创建方式:在Vue2中,我们通过实例化`VueRouter`类来创建路由对象,并将其传递给Vue实例。而在Vue3中,我们使用`createRouter`函数来创建路由对象,并通过`app.use()`方法将其挂载到Vue实例上。 3. 路由配置方式:在Vue2中,我们使用路由配置对象来定义路由规则,包括路径和对应的组件。而在Vue3中,我们使用路由配置数组来定义路由规则,每个路由配置项包含路径、组件和其他属性。 4. 动态路由的使用:在Vue2中,我们可以使用动态路由参数来实现根据不同参数显示不同内容的功能。而在Vue3中,动态路由参数的语法有所改变,需要使用`:param`的形式来定义动态参数。 5. 路由传参方式:在Vue2中,我们通常使用`query`或`params`来进行路由传参。而在Vue3中,路由传参的方式有所变化,可以使用路径参数、查询参数或命名路由进行传参。 总的来说,Vue3相对于Vue2在路由方面进行了一些改进和优化,使得路由的使用更加简洁和灵活。但是需要注意的是,由于Vue3还比较新,可能有些第三方插件和库可能还不兼容,需要注意版本的选择和使用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

前端布道人

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

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

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

打赏作者

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

抵扣说明:

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

余额充值