欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

router

程序员文章站 2022-06-03 09:39:08
...
import Vue from 'vue' // 引入vue
import VueRouter from 'vue-router' // 引入router
import App from './App.vue' // 引入依赖页

// 路由懒加载:结合vue的异步组件和weebpack的代码分割功能
const home = () => import(/* webpackChunkName: "Home" */ '@/components/home.vue')
const my = () => import(/* webpackChunkName: "my" */ '@/components/component.vue')

// 定义路由
const routes = [
  {
    path: '/',
    name: 'home', // 命名路由
    redirect: 'home', // 重定向
    component: home, // 路由映射的组件
    meta: { // 路由元信息
      show: true
    },
    children: [
      {
        path: '/my',
        name: 'my',
        component: my,
        meta: {
          name: 'xiaoming'
        }
      }
    ]
  }
]

// 创建 router 实例,然后传 `routes` 配置
const router = new VueRouter({
  mode: 'history', // 默认模式hash 
  routes
})

// 创建和挂载根实例:通过注入路由器,我们可以在任何组件内通过 this.$router 访问路由器,也可以通过 this.$route 访问当前路由
new Vue({
  router,
  render: h => h(App),
}).$mount('#app')

// 编程式导航
// path优先于name
// query和params读取语法:this.$route.query.userId
// query和params不同之处:页面刷新后url中的param丢失
// param只能配合name使用,query两者都可以
this.$router.push({ path: 'home',query: { userId: '123'}})
this.$router.push({ name: 'user', params: { userId: '123' }})
// 不记录在history中
this.$router.replace({ name: 'user', params: { userId: '123' }})
相关标签: router