<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <!-- SPA单页面应用 路由控制了页面应该显示的内容 /a 传参 除了使用动态路由外 还可以使用查询参数query 两者的路由风格不同 动态路由 /type/1 /type/2 /type/3 查询参数 /type?id=1 /type?id=2 /type?id=3 虽然两者表现不同,但是,功能都是相同的 动态路由的参数想要获取使用 $route.params.参数名 查询参数 $route.query.参数名 嵌套路由中的子路由所对应的组件会被渲染到其父路由组件的router-view中,如果没有这个,就不渲染 --> <div id="app"> <router-view></router-view> </div> <script src="./vue.js"></script> <script src="./vue-router.js"></script> <script> // 1 创建路由组件 (就是个组件配置对象) const com = { template: ` <div> 组件a // <router-view></router-view> </div> ` } const channel = { /* 必须掌握 在动态路由组件中,接收到动态路由参数 1 模板中 $route.params.id 2 在组件的相关函数里 this.$route.params.id 当我们把router添加到new Vue后,在vue的每个组件的data中都会有一个$route */ template: ` <div>channel {{$route.params.id}}</div> `, created () { // this.$route.params.id } } // 2 创建路由配置 const routes = [ { path: '/', // component: '组件' component: com }, { path: '/a', // xxx.xxx.com/#/a component: com, // 这个时候才能称com为路由组件 children: [ { path: '', component: } ] }, { path: '/channel/:id', // /channel/值 component: channel } ] // 3 生成路由对象 const router = new VueRouter({ // routes: routes routes }) // 4 将路由对象放在vue实例的配置汇中 const app = new Vue({ el: '#app', router }) </script> </body> </html>