App.vue 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. <template>
  2. <div id="app">
  3. <div class="container">
  4. <nav>
  5. <!-- router-link 就是路由链接 -->
  6. <!-- to 属性 就是路由链接的路径 -->
  7. <router-link to="/">
  8. <div class="nav-item">首页</div>
  9. </router-link>
  10. <router-link to="/about">
  11. <div class="nav-item">关于</div>
  12. </router-link>
  13. <router-link :to="{name:'pageone',params:{a:10,b:20}}">
  14. <div class="nav-item">页面一</div>
  15. </router-link>
  16. <router-link to="/pagetw">
  17. <div class="nav-item">页面二</div>
  18. </router-link>
  19. <!-- <router-link to="/pagethree"> -->
  20. <router-link :to="{name:'pagethree',query:{x:123,y:456}}">
  21. <div class="nav-item">页面三</div>
  22. </router-link>
  23. <router-link to="/home">
  24. <div class="nav-item">返回首页</div>
  25. </router-link>
  26. <router-link to="/backhome">
  27. <div class="nav-item">首页别名</div>
  28. </router-link>
  29. <div class="nav-item" @click="goPage">
  30. 编程式导航
  31. </div>
  32. <router-link to="/pagefour">
  33. <div class="nav-item">页面四</div>
  34. </router-link>
  35. <router-link to="/pagefive">
  36. <div class="nav-item">页面五</div>
  37. </router-link>
  38. </nav>
  39. <!-- router-view 就是路由出口 -->
  40. <div class="content" >
  41. <!-- 路由过渡效果 name 属性 就是路由过渡效果的名称 -->
  42. <transition name="fade">
  43. <router-view />
  44. </transition>
  45. </div>
  46. </div>
  47. </div>
  48. </template>
  49. <script>
  50. export default{
  51. name:"App",
  52. methods:{
  53. goPage(){
  54. // 编程式导航 push 类似于 router-link to 属性
  55. // this.$router.push("/pagetwo");
  56. // this.$router.push({name:'pagethree',query:{x:999,y:666}})
  57. // go 方法 类似于浏览器的前进后退 里面的数字式步数 负数后退 正数前进
  58. // this.$router.go(-1);
  59. }
  60. }
  61. }
  62. </script>
  63. <style>
  64. /* 路由过渡效果 */
  65. .fade-enter{
  66. opacity: 0;
  67. }
  68. .fade-enter-active{
  69. transition: all 1s ease-in-out;
  70. }
  71. .fade-enter-to{
  72. opacity: 1;
  73. }
  74. .fade-leave{
  75. opacity: 1;
  76. }
  77. .fade-leave-active{
  78. transition: all 0.5s ease-in-out;
  79. opacity: 0;
  80. }
  81. #app {
  82. font-family: Avenir, Helvetica, Arial, sans-serif;
  83. -webkit-font-smoothing: antialiased;
  84. -moz-osx-font-smoothing: grayscale;
  85. text-align: center;
  86. color: #2c3e50;
  87. }
  88. .container{
  89. display: flex;
  90. }
  91. nav {
  92. padding: 30px;
  93. width: 200px;
  94. }
  95. .content{
  96. flex-grow: 1;
  97. }
  98. .nav-item {
  99. width: 100px;
  100. height: 50px;
  101. background-color: #ddd;
  102. text-align: center;
  103. line-height: 50px;
  104. font-weight: bold;
  105. color: #111;
  106. margin-bottom: 10px;
  107. }
  108. nav a.router-link-exact-active {
  109. color: #42b983;
  110. }
  111. </style>