当前位置:   article > 正文

Vue Router_如何下载vue-router": "3.4.9

如何下载vue-router": "3.4.9

一、Vue Router概述

vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,适合用于构建单页面应用。

vue的单页面应用是基于路由和组件的,路由用于设定访问路径,并将路径和组件映射起来。

而传统的多页面应用,是用一些超链接来实现页面切换和跳转的。在vue-router单页面应用中,则是路径之间的切换,也就是组件的切换。

路由中有三个基本的概念 route, routes, router。

1. route,它是一条路由,由这个英文单词也可以看出来,它是单数, Home按钮 => home内容, 这是一条route, about按钮 => about 内容, 这是另一条路由。

2. routes 是一组路由,把上面的每一条路由组合起来,形成一个数组。[{home 按钮 =>home内容 }, { about按钮 => about 内容}]

3. router 是一个机制,相当于一个管理者,它来管理路由。因为routes 只是定义了一组路由,它放在哪里是静止的,当真正来了请求,怎么办? 就是当用户点击home 按钮的时候,怎么办?

这时router 就起作用了,它到routes 中去查找,去找到对应的 home 内容,所以页面中就显示了 home 内容。

4. 客户端中的路由,实际上就是dom 元素的显示和隐藏。当页面中显示home 内容的时候,about 中的内容全部隐藏,反之也是一样。客户端路由有两种实现方式:基于hash 和基于html5 history api.

二、Vue Router入门程序

1.下载引入VueRouter文件

2.创建组件

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <script type="text/javascript" src="../public/js/vue.min.js"></script>
  7. <script type="text/javascript" src="../public/js/vue-router-3.4.9.js"></script>
  8. </head>
  9. <body>
  10. <div id="app">
  11. </div>
  12. <!--注册-->
  13. <template id="register">
  14. <h1>这是注册页面</h1>
  15. </template>
  16. <!--登录-->
  17. <template id="login">
  18. <h1>这是登录页面</h1>
  19. </template>
  20. <script>
  21. let RegisterComponent = {
  22. template:"#register"
  23. }
  24. let LoginComponent = {
  25. template: "#login"
  26. }
  27. new Vue({
  28. el:"#app",
  29. components:{RegisterComponent,LoginComponent}
  30. });
  31. </script>
  32. </body>
  33. </html>

3.创建router

  1. // 创建路由【添加路由规则】
  2. let vueRouter = new VueRouter({
  3. routes:[
  4. {
  5. name:"register",// 路由名称
  6. path:"/register",// 组件对应的路由路径
  7. component:RegisterComponent
  8. },
  9. {
  10. name:"login",// 路由名称
  11. path:"/login",// 组件对应的路由路径
  12. component:LoginComponent
  13. }
  14. ]
  15. });

 

4.挂载router

  1. new Vue({
  2. el:"#app",
  3. components:{RegisterComponent,LoginComponent},
  4. router
  5. });

5.使用router

  1. <div id="app">
  2. <!--<a href="#/register">注册</a>
  3. <a href="#/login">登录</a>-->
  4. <router-link to="/register">注册</router-link>
  5. <router-link to="/login">登录</router-link>
  6. <hr>
  7. <!-- 负责展示组件-->
  8. <router-view></router-view>
  9. </div>

三、Vue Router简便方式

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <script type="text/javascript" src="../public/js/vue.min.js"></script>
  7. <script type="text/javascript" src="../public/js/vue-router-3.4.9.js"></script>
  8. </head>
  9. <body>
  10. <div id="app">
  11. <router-link v-for="(item,index) in array" :key="index" :to="item.path" v-text="item.context"></router-link>
  12. <!-- 负责展示组件-->
  13. <router-view></router-view>
  14. </div>
  15. <!--注册-->
  16. <template id="register">
  17. <h1>这是注册页面</h1>
  18. </template>
  19. <!--登录-->
  20. <template id="login">
  21. <h1>这是登录页面</h1>
  22. </template>
  23. <script>
  24. let RegisterComponent = {
  25. template:"#register"
  26. }
  27. let LoginComponent = {
  28. template: "#login"
  29. }
  30. // 创建路由【添加路由规则】
  31. let router = new VueRouter({
  32. routes:[
  33. {
  34. name:"register",// 路由名称
  35. path:"/register",// 组件对应的路由路径
  36. component:RegisterComponent
  37. },
  38. {
  39. name:"login",// 路由名称
  40. path:"/login",// 组件对应的路由路径
  41. component:LoginComponent
  42. }
  43. ]
  44. });
  45. new Vue({
  46. el:"#app",
  47. components:{RegisterComponent,LoginComponent},
  48. router,
  49. data:{
  50. array:[
  51. {path:"/register",context:"注册"},
  52. {path:"/login",context:"登录"}
  53. ]
  54. }
  55. });
  56. </script>
  57. </body>
  58. </html>

四、router-link

router-link中的to属性值可以是多种类型

1.声明式导航

直接写在行内的便是声明式导航;

2.编程式导航

  1. methods:{
  2. loginGo(){
  3. this.$router.push({path:"/login"});
  4. }
  5. }

五、$router和$route

$route:是当前路由规则对象

$router:是VueRouter对象

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <script type="text/javascript" src="../public/js/vue.min.js"></script>
  7. <script type="text/javascript" src="../public/js/vue-router-3.4.9.js"></script>
  8. </head>
  9. <body>
  10. <div id="app">
  11. <router-link to="/login">登录</router-link>
  12. <router-link :to="{path:'/register'}">注册</router-link>
  13. <router-link :to="{name:'register'}">注册</router-link>
  14. <button @click="loginGo">跳转到登录</button>
  15. <!-- 负责展示组件-->
  16. <router-view></router-view>
  17. </div>
  18. <!--注册-->
  19. <template id="register">
  20. <h1>这是注册页面</h1>
  21. </template>
  22. <!--登录-->
  23. <template id="login">
  24. <h1>这是登录页面</h1>
  25. </template>
  26. <script>
  27. let RegisterComponent = {
  28. template:"#register"
  29. }
  30. let LoginComponent = {
  31. template: "#login"
  32. }
  33. // 创建路由【添加路由规则】
  34. let router = new VueRouter({
  35. routes:[
  36. {
  37. name:"register",// 路由名称
  38. path:"/register",// 组件对应的路由路径
  39. component:RegisterComponent
  40. },
  41. {
  42. name:"login",// 路由名称
  43. path:"/login",// 组件对应的路由路径
  44. component:LoginComponent
  45. }
  46. ]
  47. });
  48. new Vue({
  49. el:"#app",
  50. components:{RegisterComponent,LoginComponent},
  51. router,
  52. methods:{
  53. loginGo(){
  54. console.log(this.$route);
  55. console.log(this.$router);
  56. }
  57. }
  58. });
  59. </script>
  60. </body>
  61. </html>

$router函数

1.push:跳转路由【会在历史记录中添加一个记录,这样后退能回到之前的页面】

2.replace:替换导航【不会在历史记录中添加一个记录,不能后退回到之前的页面】

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <script type="text/javascript" src="../public/js/vue.min.js"></script>
  7. <script type="text/javascript" src="../public/js/vue-router-3.4.9.js"></script>
  8. </head>
  9. <body>
  10. <div id="app">
  11. <router-link to="/login">登录</router-link>
  12. <router-link :to="{path:'/register'}">注册</router-link>
  13. <router-link :to="{name:'register'}">注册</router-link>
  14. <button @click="loginGo">跳转到登录</button>
  15. <!-- 负责展示组件-->
  16. <router-view></router-view>
  17. </div>
  18. <!--注册-->
  19. <template id="register">
  20. <h1>这是注册页面</h1>
  21. </template>
  22. <!--登录-->
  23. <template id="login">
  24. <h1>这是登录页面</h1>
  25. </template>
  26. <script>
  27. let RegisterComponent = {
  28. template:"#register"
  29. }
  30. let LoginComponent = {
  31. template: "#login"
  32. }
  33. // 创建路由【添加路由规则】
  34. let router = new VueRouter({
  35. routes:[
  36. {
  37. name:"register",// 路由名称
  38. path:"/register",// 组件对应的路由路径
  39. component:RegisterComponent
  40. },
  41. {
  42. name:"login",// 路由名称
  43. path:"/login",// 组件对应的路由路径
  44. component:LoginComponent
  45. }
  46. ]
  47. });
  48. new Vue({
  49. el:"#app",
  50. components:{RegisterComponent,LoginComponent},
  51. router,
  52. methods:{
  53. loginGo(){
  54. // this.$router.push({path:"/login"});
  55. this.$router.replace({path:"/login"});
  56. }
  57. }
  58. });
  59. </script>
  60. </body>
  61. </html>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/359265
推荐阅读
相关标签
  

闽ICP备14008679号