🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# ***vue-router*** > 本文档主要是对 `vue-router` 的使用,附上 `demo` 主要源码以供参考 ## 1. 路由注册: ~~~ import vue from 'vue' import Router from 'vue-router' import routes from './router' ​ vue.use(Router) ​ const router = newRouter({  // 默认为 hash  mode: 'history',  // 基路径  base: '/',  routes }) ​ router.beforeEach((to, from, next) => {  // 正要离开的路由对象  console.error('from', from)  // 即将进入的目标路由对象  console.error('to', to)  // 使用该函数来reslove这个钩子,可以传递参数来重定向路由  next() }) export default router ~~~ ### 1.1 动态属性设置 `:` 符号接参数名,在跳转路由时会动态更改参数值 ~~~ export default new Router({  routes: [{ path: '/',    //... }, {    path: '/login/:id',    name: 'login'    // ... }] }) ~~~ ~~~ const id = 1 this.$router.push(`/login/${id}`) // -> /login/1 ~~~ ## 2. 页面跳转 ### 2.1 元素标签路由跳转 ~~~ <router-link to="/home">HOME</router-link> ~~~ ### 2.2 通过方法跳转(常用) ~~~ // just a string path this.$router.push('/home') ​ // or a object router.push({ path: 'home' }) ​ // with params const userId = '123' router.push({ name: 'user', params: { userId } }) // -> /user/123 router.push({ `/user/${userId}` }) // -> /user/123 router.push({ name: 'user', query: { userId }}) // -> user?userId=123 ~~~ ## 3. 路由守卫 before ## 单页面应用刷新机制 本次探索主要为了看能否将该机制用于微前端。