创建组件
首先引入vue.js和vue-router.js:
然后创建两个组件构造器Home和About:
App.vue
- 创建Router1234567891011121314import Vue from 'vue'import App from './App'import VueRouter from 'vue-router'import Page1 from './components/page1'import Page2 from './components/page2'var router = new VueRouter({routes})new Vue({el: '#app',template: '<App/>',components: { App },router})
调用构造器VueRouter,创建一个路由器实例router。
- 映射路由1234const routes = [{ path: '/', component: Page1 },{ path: '/2', component: Page2 },]
page1.vue
|
|
page2.vue
实现步骤:
* npm安装vue-router
* Vue.use(VueRouter)全局安装路由功能
* 定义路径数组routes并创建路由对象router
* 将路由注入到Vue对象中
* 在根组件中使用<router-link>定义跳转路径
* 在根组件中使用<router-view>来渲染组件
* 创建子组件
路由的跳转
router-link
router-link标签用于页面的跳转
当点击这个router-link标签时 router-view就会渲染路径为/page1的页面。
注意:router-link默认是一个a标签的形式,如果需要显示不同的样子,可以在router-link标签中写入不同标签元素,如下显示为button按钮。
如果使用 v-bind 指令,还可以在 to 后面接变量,配合 v-for 指令可以渲染导航菜单
如果对于所有 ID 各不相同的用户,都要使用 home 组件来渲染,可以在 routers.js 中添加动态参数:
{
path: ‘/home/:id’,
component: Home
}
这样 “/home/user01”、”/home/user02”、”/home/user03” 等路由,都会映射到 Home 组件
然后还可以使用 $route.params.id 来获取到对应的 id
动态路由匹配
|
|
|
|
编程式导航 router.push
也可以通过JS代码控制路由的界面渲染,方法如下:
实际情况下,有很多按钮在执行跳转之前,还会执行一系列方法,这时可以使用 this.$router.push(location) 来修改 url,完成跳转
|
|
嵌套路由
|
|
|
|