vue-router的应用十分简单,只有两步,配置好router文件,在Vue实例中引入即可。

第一步:根据需求配置router文件

import Vue from 'vue'
import Router from 'vue-router'
import Index from '@/components/Index'
import Task from '@/components/Task'
import Share from '@/components/Share'
Vue.use(Router)

export default new Router({     // 导出router模块
  routes: [
    {
      path: '/',
      name: 'Index',
      component: Index
    },
    {
      path: '/task',
      name: 'Task',
      component: Task
    },
    {
      path: '/share',
      name: 'Share',
      component: Share
    }
  ]
})

第二步:在Vue的实例中引入router

import Vue from 'vue'
import App from './App'
import router from './router'    //引入router模块

Vue.config.productionTip = false

new Vue({
  el: '#app',
  router,     //将router注入到vue实例
  components: { App },
  template: '<App/>'
})

 

这样简单的路由配置就成功了。

 

在组件中可以通过this.$route/this.$routes/this.router访问路由的相关属性和方法

在组件中通过输出操作来查看这三个属性有什么不同

可以看到

this.$route指的当前页面的当前路由对象,从该对象的相关属性,如params、query等可以取到当前路由的url参数。所以,要操作当前路由就用this.$route

this.$routes为undefined,证明不存在该对象

this.$router可以理解为整个项目的路由管理者,从这里可以看到整个项目的路由配置,也可以对整个项目的路由做修改,通过addRoutes方法可以添加新的路由,还有历史记录相关操作,通过go和back可以进行相关的历史记录回退和前进。所以,要操作整个项目的路由就用this.$router

 

特别提到注意事项:

1.addRoutes()方法接收的是数组,使用对象会报错(Uncaught TypeError: routes.forEach is not a function)

2.对象里面的键名component注意不要写成复数components,否则会报错

(TypeError: Cannot read property '$createElement' of undefined)

 

Logo

前往低代码交流专区

更多推荐