Vue路由(嵌套路由)的使用

£神魔★判官ぃ 2021-09-20 09:08 686阅读 0赞

1、vue-router介绍

vue-router是Vue.js的路由插件。适合用于构建单页面应用,基于路由和组件;路由用于设定访问路径,将路径和组件映射起来。
路径之间的切换实际上就是组件的切换。

2、安装 vue-router

先要搭建vue工作环境,环境搭建请参考另外两篇:Windows下的vue工作环境搭建和linux下的vue工作环境搭建。

3、创建项目

  1. vue init webpack myobj #创建一个vue项目
  2. #定位到myobj目录,执行npm install vue-router --save来安装路由组件。
  3. cd myobj
  4. npm install vue-router --save #进入工程目录下再执行此命令

#安装成功后,package.json中会自动添加 “vue-router”: “^3.0.6”路由组件。
在这里插入图片描述

4、vue路由源码(图示)

路由(嵌套路由)入门源码下载:https://download.csdn.net/download/u012577474/11253385

这是主页:
在这里插入图片描述
这是game页面:
在这里插入图片描述
这是A页面:
在这里插入图片描述
这是B页面:
在这里插入图片描述

5、vue路由源码(解析)

目录结构:
在这里插入图片描述
assets目录下是资源图片。
page目录下是各组件。
page/gllgame下是子路由组件。

index.html :

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>myobj</title>
  6. <style> #app{ border:1px solid #1f119c; } </style>
  7. </head>
  8. <body >
  9. <h1>《这里是index.html页》</h1>
  10. <h2>Vue嵌套路由学习,下面是嵌入的路由视图加载区域(用来加载root、game、A、B页面):</h2>
  11. <div id="app">
  12. <!-- router-view 路由出口, 路由匹配到的组件将渲染在这里 -->
  13. <router-view></router-view>
  14. </div>
  15. <script src="/dist/build.js"></script>
  16. </body>
  17. </html>

main.js :

  1. import Vue from 'vue' //引用vue
  2. import VueRouter from 'vue-router' //引用vue官方路由组件
  3. Vue.use(VueRouter)
  4. //引入组件
  5. import root from "./page/root.vue"
  6. import game from "./page/game.vue"
  7. import GameOne from "./page/allgame/GameOne.vue"
  8. import GameTwo from "./page/allgame/GameTwo.vue"
  9. import A from "./page/A.vue"
  10. import B from "./page/B.vue"
  11. //定义路由
  12. const routes = [
  13. // { path: "/", redirect: "/home" },//重定向,指向了home组件
  14. { path: "/", component: root },//重定向,指向了home组件
  15. {
  16. path: "/game", component: game, //一级路由
  17. children:
  18. [{
  19. path: "/game/gameone", component: GameOne, //二级路由(game子路由)
  20. },
  21. {
  22. path: "/game/gametwo", component: GameTwo, //二级路由(game子路由)
  23. }]
  24. },
  25. {
  26. path: "/a", component: A, //一级路由
  27. },
  28. {
  29. path: "/b", component: B, //一级路由
  30. }
  31. ]
  32. //创建路由实例
  33. const router = new VueRouter({ routes })
  34. //创建Vue实例
  35. new Vue({
  36. el: '#app',
  37. data: {
  38. },
  39. methods: {
  40. },
  41. router
  42. })

root.vue :

  1. <template>
  2. <div id='rootbox'>
  3. <h2>[-----------------root页内容--------------]</h2>
  4. <!--/home/game ,这里的game是home的子页,所以会插入game会插入HOME页下的路由试图中-->
  5. <!--/game ,如果是这样,game页也成为home的同辈页,即覆盖整个HOME页-->
  6. <router-link to="/game"> <button>跳转game页按钮</button> </router-link>
  7. <router-link to="/a"> <button>跳转A页按钮</button> </router-link>
  8. <router-link to="/b"> <button>跳转B页按钮</button> </router-link>
  9. <router-view></router-view>
  10. </div>
  11. </template>
  12. <style>
  13. #rootbox{
  14. border:1px solid #F00;
  15. }
  16. </style>

game.vue :

  1. <template>
  2. <div id="gmbox" >
  3. <h2>[-----------------游戏页内容--------------]</h2>
  4. <h3>点击下面按钮,选择你想玩游戏</h3>
  5. <router-link to="/game/gameone"> <button>开始游戏One</button> </router-link>
  6. <router-link to="/game/gametwo"> <button>开始游戏Two</button> </router-link>
  7. <h3>@@@@@@@这里演示了嵌套路由@@@@@@@</h3>
  8. <div style="background: rgb(0, 195, 255);height: 600px;width:800px;border:1px solid yellow; ">
  9. <h2>[-----------------游戏加载区--------------]</h2>
  10. <router-view></router-view> //路由视图显示
  11. </div>
  12. </div>
  13. </template>
  14. <style>
  15. #gmbox{
  16. height: 860px;
  17. width: 1130px;
  18. border:1px solid #F00;
  19. background:url(../assets/game.jpg );
  20. }
  21. </style>

GameOne.vue 代码:

  1. <template>
  2. <div style=" border:1px solid #F00; width:300px;height:300px;background: #FFC0CB">
  3. <h3 style="background: rgb(0, 174, 255)">我是游戏One</h3>
  4. </div>
  5. </template>

源码下载:https://download.csdn.net/download/u012577474/11253385

发表评论

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

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

相关阅读

    相关 Vue 嵌套

    文章目录 嵌套路由 具体实现 嵌套路由 说白了就是选项卡中又嵌套一个选项卡。 可以看看官方的例子 [传送门][Link 1] 具体

    相关 Vue嵌套(子

    路由的嵌套就是点击一个路由地址后,继续点击,进入到另外一个路由地址下,即第二个路由就是第一个路由的子路由。 根据我们前面学习的VueRouter的知识,可以直接写出代码来实