浏览器正能量网站免费图片网站营销教程
文章目录
- 路由安装
 - 路由配置
 - vue-router 3.x版本写法
 - 配置路由
 - 使用路由
 
- vue-router 4.x版本写法
 - 配置路由
 - 使用路由
 
- Vue Router 4 与 Vue Router 3 区别
 
路由安装
-  
Vue 2 (使用 Vue Router 3) :
npm install vue-router@3 -  
Vue 3 (使用 Vue Router 4) :
npm install vue-router@4 
路由配置
vue-router 3.x版本写法
配置路由
// router/index.js  
import Vue from 'vue'  
import Router from 'vue-router'  
import Home from '../views/Home.vue'  
import About from '../views/About.vue'  Vue.use(Router)  const routes = [  {  path: '/',  name: 'Home',  component: Home  },  {  path: '/about',  name: 'About',  component: About  }  
]  export default new Router({  // 区别1mode: 'history',  // 区别2base: process.env.BASE_URL,  routes 
})
 
使用路由
// main.js  
import Vue from 'vue'  
import App from './App.vue'  
import router from './router'  new Vue({  router,  render: h => h(App)  
}).$mount('#app')  // 区别3  
 
.
vue-router 4.x版本写法
配置路由
// router/index.js
import { createRouter, createWebHistory } 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({  // 区别1history: createWebHistory(process.env.BASE_URL),  // 区别2routes  
})  export default router
 
使用路由
// main.js  
import { createApp } from 'vue'  
import App from './App.vue'  
import router from './router'  const app = createApp(App)  
app.use(router)  // 区别3  
app.mount('#app')
 
Vue Router 4 与 Vue Router 3 区别
-  
与 Vue 版本的兼容性:Vue Router 4 是专门为 Vue 3 设计的,而 Vue Router 3 与 Vue 2 兼容。
 -  
Composition API 的集成:Vue Router 4 提供了更好的对 Vue 3 Composition API 的支持,允许你使用
useRoute和useRouter钩子在组合式组件中访问路由信息。 -  
TypeScript 支持:Vue Router 4 对 TypeScript 提供了更好的支持,类型定义更加完整和准确。
 -  
路由守卫的改进:Vue Router 4 改进了路由守卫(导航守卫)的 API,提供了更多的灵活性和控制。
 -  
滚动行为:Vue Router 4 改进了滚动行为的管理,允许更细粒度的控制。
 
具体体现在:
- 由 
createRouter()替换new Router() - 路由模式由 
createWebHistory()替换mode: 'history' - main.js中由 
.use(router)替换new Vue({ router })
. 
路由模式区别
| vue-router 3.x | vue-router 4.x | 
|---|---|
| history | createWebHistory() | 
| hash | createWebHashHistory() | 
| abstract | createMemoryHistory() | 
