vue-router.js
<style> .router-link-exact-active { background-color: red; } /* 路由组件的入场动画 */ .v-enter { transform: translateX(200px) } .v-enter-active { transition: 1s; } .v-enter-to { transform: translateZ(0) }</style><body> <!-- 步骤一: 在vue之后导入vue-router路由插件 --> <script src='https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js'></script> <script src="./vue-router.js"></script> <div id='myApp'> <!-- 步骤二: 在根组件模板中,添加路由跳转标签 --> <!-- <a href="#/main">主页</a> | <a href="#/login">登录</a> | <a href="#/user">用户</a> --> <!-- vue路由监视使用router-link组件代替a标签, 特点如下 1, router-link会被渲染成a标签, to属性渲染成href 2, to属性不用写#, 渲染到href上时会自动补全 3, 点击router-link时会自动添加router-link-exact-active和router-link-active这两个class值 --> <router-link to="/main">主页</router-link> <router-link to="/login">登录</router-link> <router-link to="/user">用户</router-link> <!-- 步骤六: 在根组件模板中, 添加路由出口: 路由组件渲染的位置 --> <router-view></router-view> <!-- 路由切换类似于动态组件,可以使组件销毁和创建, 保留数据可用keep-alive --> <keep-alive> <router-view></router-view> </keep-alive> <!-- 组件切换时,添加动画效果, 并保留组件数据 记住:transition在外 --> <transition> <keep-alive> <router-view></router-view> </keep-alive> </transition> </div> <script> // 步骤三: 创建路由控制分发跳转的组件 var MainPage = Vue.component("mainCom", { template: "<h1>这是主页</h1>" }); var LoginPage = Vue.component("loginCom", { template: "<h1>这是登录页<input></h1>" }); var UserPage = Vue.component("userCom", { template: "<h1>这是用户页</h1>" }); // Vue.component 返回值是组件的构造函数 console.log(MainPage, LoginPage, UserPage) // 步骤四: 创建路由对象,配置路由信息 const router = new VueRouter({ // 在routes子字段下配置路由, 一个对象就一个路径的信息, // path路径对应的是hash值,省略#, 一般以/开头 // component 值是路由对应的组件构造函数, 不是组件名 routes: [ { path: "/main", component: MainPage }, { path: "/login", component: LoginPage }, { path: '/user', component: UserPage }, // 启动项目时,默认路径是/ , 可以把/这个路径绑定为主页 { path: "/", // 路由重定向, 可以修改路由跳转路径 redirect: "/main" }, ] }) new Vue({ el: '#myApp', // 步骤五: 把路由对象加入vue对象中 router, data: {} }) </script></body>