vue-router.js

    1. <style>
    2. .router-link-exact-active {
    3. background-color: red;
    4. }
    5. /* 路由组件的入场动画 */
    6. .v-enter {
    7. transform: translateX(200px)
    8. }
    9. .v-enter-active {
    10. transition: 1s;
    11. }
    12. .v-enter-to {
    13. transform: translateZ(0)
    14. }
    15. </style>
    16. <body>
    17. <!-- 步骤一: vue之后导入vue-router路由插件 -->
    18. <script src='https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js'></script>
    19. <script src="./vue-router.js"></script>
    20. <div id='myApp'>
    21. <!-- 步骤二: 在根组件模板中,添加路由跳转标签 -->
    22. <!-- <a href="#/main">主页</a> |
    23. <a href="#/login">登录</a> |
    24. <a href="#/user">用户</a> -->
    25. <!-- vue路由监视使用router-link组件代替a标签, 特点如下
    26. 1, router-link会被渲染成a标签, to属性渲染成href
    27. 2, to属性不用写#, 渲染到href上时会自动补全
    28. 3, 点击router-link时会自动添加router-link-exact-activerouter-link-active这两个class
    29. -->
    30. <router-link to="/main">主页</router-link>
    31. <router-link to="/login">登录</router-link>
    32. <router-link to="/user">用户</router-link>
    33. <!-- 步骤六: 在根组件模板中, 添加路由出口: 路由组件渲染的位置 -->
    34. <router-view></router-view>
    35. <!-- 路由切换类似于动态组件,可以使组件销毁和创建, 保留数据可用keep-alive -->
    36. <keep-alive>
    37. <router-view></router-view>
    38. </keep-alive>
    39. <!-- 组件切换时,添加动画效果, 并保留组件数据 记住:transition在外 -->
    40. <transition>
    41. <keep-alive>
    42. <router-view></router-view>
    43. </keep-alive>
    44. </transition>
    45. </div>
    46. <script>
    47. // 步骤三: 创建路由控制分发跳转的组件
    48. var MainPage = Vue.component("mainCom", { template: "<h1>这是主页</h1>" });
    49. var LoginPage = Vue.component("loginCom", { template: "<h1>这是登录页<input></h1>" });
    50. var UserPage = Vue.component("userCom", { template: "<h1>这是用户页</h1>" });
    51. // Vue.component 返回值是组件的构造函数
    52. console.log(MainPage, LoginPage, UserPage)
    53. // 步骤四: 创建路由对象,配置路由信息
    54. const router = new VueRouter({
    55. // 在routes子字段下配置路由, 一个对象就一个路径的信息,
    56. // path路径对应的是hash值,省略#, 一般以/开头
    57. // component 值是路由对应的组件构造函数, 不是组件名
    58. routes: [
    59. { path: "/main", component: MainPage },
    60. { path: "/login", component: LoginPage },
    61. { path: '/user', component: UserPage },
    62. // 启动项目时,默认路径是/ , 可以把/这个路径绑定为主页
    63. {
    64. path: "/",
    65. // 路由重定向, 可以修改路由跳转路径
    66. redirect: "/main"
    67. },
    68. ]
    69. })
    70. new Vue({
    71. el: '#myApp',
    72. // 步骤五: 把路由对象加入vue对象中
    73. router,
    74. data: {}
    75. })
    76. </script>
    77. </body>