html代码
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title></title> </head> <body> <div id="app"> <div> <!-- 静态路由 --> <router-link to="/">首页</router-link> <router-link to="/about">关于我们</router-link> <!-- 动态路由 --> <router-link to="/user/apollo">Apollo</router-link> <router-link to="/user/jack">Jack</router-link> <!-- 手动访问和传参 --> <button @click="surf">漫游</button> </div> <div> <!-- 路由视图 --> <router-view></router-view> </div> </div> <!-- 注意js导入顺序,自己定义的要在下面 --> <script src="../js/vue.js"></script> <script src="../js/vue-router.js"></script> <script src="app.js"></script> </body> </html>
js代码:
var routes = [ // 静态路由 { path: '/', component: { template: ` <div> <h1>首页</h1> </div> `, }, }, // 静态路由 { path: '/about', component: { template: ` <div> <h1>关于我们</h1> </div> `, }, }, // 动态路由 { // 注意是斜杠'/'后面在冒号 path: '/user/:name', // 路由别名 name:'user', component: { template: ` <div> <!-- 第一种方式:params,动态传参 --> <h1>用户中心:{{ $route.params.name }}</h1> <!-- 第一种写法:v-bind绑定, to前面 [需要] 加冒号':' --> <!--<router-link :to=" '/user/'+$route.params.name+'/more' ">更多信息</router-link>--> <!-- 第二种写法:append追加, to前面 [不要] 加冒号':' --> <router-link to="more" append>更多信息</router-link> <router-view></router-view> </div> `, }, children: [ { path: 'more', component: { template: ` <div> <h3>用户中心:{{ $route.params.name }}</h3> 更多内容请点击下方按钮阅读......<br> 更多内容请点击下方按钮阅读......<br> 更多内容请点击下方按钮阅读......<br> 更多内容请点击下方按钮阅读...... </div> ` } } ] } ]; // 路由构造 var router = new VueRouter({ routes: routes, }); // 实例 new Vue({ el: '#app', router: router, methods:{ // 手动访问和传参 surf:function () { setTimeout( function () { this.router.push('/about'); setTimeout(function () { // 写法1 this.router.push('/user/apollo'); // 写法2 this.router.push({name:'user',params:{name:'jack',}}) },2000) },2000) } } });