Vue路由

蔚落 2022-02-24 02:56 418阅读 0赞

vue-router 基本使用

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title></title>
  6. <script src="lib/vue.js"></script>
  7. <script src="lib/vue-router.js"></script>
  8. <script src="lib/vue-resource.js"></script>
  9. <style type="text/css">
  10. /* .router-link-active{
  11. color: red;
  12. } */
  13. .myactive{
  14. color: green;
  15. }
  16. /* 自定义两组类 */
  17. .v-enter,
  18. .v-leave-to{
  19. opacity: 0;
  20. transform:translateX(140px);
  21. }
  22. .v-enter-active,
  23. .v-leave-active{
  24. transition: all 0.5s ease;
  25. }
  26. </style>
  27. </head>
  28. <body>
  29. <div id="app">
  30. <!-- <a href="#/login">登录</a> -->
  31. <!-- <a href="#/register">注册</a> -->
  32. <!-- 使用router-link 代替a标签,可以省略# -->
  33. <router-link to="/login">登录</router-link>
  34. <router-link to="/register">注册</router-link>
  35. <!-- 将路由的模板占位 -->
  36. <!-- 加动画 -->
  37. <transition mode="out-in">
  38. <router-view></router-view>
  39. </transition>
  40. </div>
  41. <script type="text/javascript">
  42. var login = {
  43. template : '<h1>登录</h1>'
  44. }
  45. var register = {
  46. template : '<h1>注册</h1>'
  47. }
  48. var routerObj = new VueRouter({
  49. //路由
  50. routes:[
  51. // component 是组件的模板对象,不能是组件注册的名词
  52. // 组件注册的名词,仅限于标签的使用
  53. {path:'/',redirect:"/login"},
  54. {path:'/login',component:login},
  55. {path:'/register',component:register},
  56. ],
  57. linkActiveClass:'myactive'
  58. })
  59. var vm = new Vue({
  60. el:"#app",
  61. data:{},
  62. router:routerObj //将路由规则对象,注册到vm实例上,用来监听URL变化,展示对应的模板对象
  63. })
  64. </script>
  65. </body>
  66. </html>
  67. <!-- 1.vue-router 的基本使用 -->
  68. <!-- 2.vue-link 代替a标签 -->
  69. <!-- 3.redirect重定向,路由默认值 -->
  70. <!-- 4.路由高亮的方法 class名字,被激活的会有一个类 默认.router-link-active -->
  71. <!-- 5.路由实现动画切换 -->

路由传参query /?id=10&name=i

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title></title>
  6. <script src="lib/vue.js"></script>
  7. <script src="lib/vue-router.js"></script>
  8. <script src="lib/vue-resource.js"></script>
  9. <style type="text/css">
  10. .myactive{
  11. color: green;
  12. }
  13. </style>
  14. </head>
  15. <body>
  16. <div id="app">
  17. <router-link to="/login?id=10">登录</router-link>
  18. <router-link to="/register" >注册</router-link>
  19. <router-view></router-view>
  20. </div>
  21. <script type="text/javascript">
  22. var login = {
  23. template : '<h1>登录---{
  24. {$route.query.id}} {
  25. {msg}}</h1>',
  26. data(){
  27. return {
  28. msg:'123',
  29. }
  30. },
  31. created(){//这个this不能省略
  32. console.log(this.$route.query.id)
  33. }
  34. }
  35. var register = {
  36. template : '<h1>注册</h1>'
  37. }
  38. var routerObj = new VueRouter({
  39. //路由
  40. routes:[
  41. {path:'/',redirect:"/login"},
  42. {path:'/login',component:login},
  43. {path:'/register',component:register},
  44. ],
  45. linkActiveClass:'myactive'
  46. })
  47. var vm = new Vue({
  48. el:"#app",
  49. data:{},
  50. router:routerObj
  51. })
  52. </script>
  53. </body>
  54. </html>

路由params传参,类似正则

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title></title>
  6. <script src="lib/vue.js"></script>
  7. <script src="lib/vue-router.js"></script>
  8. <script src="lib/vue-resource.js"></script>
  9. <style type="text/css">
  10. .myactive{
  11. color: green;
  12. }
  13. </style>
  14. </head>
  15. <body>
  16. <div id="app">
  17. <router-link to="/login/12">登录</router-link>
  18. <router-link to="/register" >注册</router-link>
  19. <router-view></router-view>
  20. </div>
  21. <script type="text/javascript">
  22. var login = {
  23. template : '<h1>登录</h1>',
  24. data(){
  25. return {
  26. msg:'123',
  27. }
  28. },
  29. created(){//这个this不能省略
  30. console.log(this.$route.query.id)
  31. }
  32. }
  33. var register = {
  34. template : '<h1>注册</h1>'
  35. }
  36. var routerObj = new VueRouter({
  37. //路由
  38. routes:[
  39. {path:'/',redirect:"/login"},
  40. {path:'/login/:id',component:login},
  41. {path:'/register',component:register},
  42. ],
  43. linkActiveClass:'myactive'
  44. })
  45. var vm = new Vue({
  46. el:"#app",
  47. data:{},
  48. router:routerObj
  49. })
  50. </script>
  51. </body>
  52. </html>

使用children 进行路由的嵌套

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title></title>
  6. <script src="lib/vue.js"></script>
  7. <script src="lib/vue-router.js"></script>
  8. <script src="lib/vue-resource.js"></script>
  9. <style type="text/css">
  10. </style>
  11. </head>
  12. <body>
  13. <div id="app">
  14. <router-link to='/acc'>Account</router-link>
  15. <router-view></router-view>
  16. </div>
  17. <template id="tmp1">
  18. <div>
  19. <h1>这是Account模板组件</h1>
  20. <!-- 这个登录 注册 是account模板组件的 -->
  21. <router-link to='/acc/login'>登录</router-link>
  22. <router-link to='/acc/register'>注册</router-link>
  23. <router-view></router-view>
  24. </div>
  25. </template>
  26. <script type="text/javascript">
  27. var account = {
  28. template:'#tmp1'
  29. }
  30. var login = {
  31. template:'<h1>登录</h1>'
  32. }
  33. var register = {
  34. template:'<h1>注册</h1>'
  35. }
  36. var router = new VueRouter({
  37. routes:[
  38. {path:'/acc',
  39. component:account,
  40. children:[//子路由匹配规则,前面不加斜线
  41. {path:'login',component:login},
  42. {path:'register',component:register},
  43. ]
  44. },
  45. // 这么写是平级的
  46. // {path:'/login',component:login},
  47. // {path:'/register',component:register},
  48. ]
  49. })
  50. var vm = new Vue({
  51. el:"#app",
  52. data:{},
  53. methods:{},
  54. router
  55. })
  56. </script>
  57. </body>
  58. </html>

发表评论

表情:
评论列表 (有 0 条评论,418人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Vue--

    一、路由介绍 生活中的路由:设备和ip的映射关系 ![68244294505][] Vue中的路由:路径和组件的映射关系 ![68244304037][] 二、

    相关 vue

    一、App.vue中的<router-view></router-view> 凡是定义到index.js中的组件,都会被渲染到App.vue中 二、路由跳转和a标签的

    相关 vue

    Vue.js - vue路由 一 什么是路由 1. 后端路由:对于普通的网站,所有的超链接都是URL地址,所有的URL地址都对应服务器上对应的资源; 2. 前端

    相关 Vue

    Vue路由 一、路由 1.路由的发展 二、js原生监听hash值的变化 三、vue-router 四、vue-router的使用