Vue路由初识

      最后更新:2022-02-20 02:22:13 手机定位技术交流文章

      简介

      主要介绍路由的理解和概念和Vue路由的基本使用和嵌套路由。

      路由的概念

      何为路由:路由的本质是一组组key-value的对应关系,多个路由由路由器管理。

      在这里插入图片描述

      编码世界中的路由主要分为两类:

      • 后端路由:
      1. key是路径,value是函数方法(function),用于根据不同的路径,使用不同的函数处理用户提交的请求。
      2. 工作流程是,后端服务器收到一个请求,路由器会根据请求的路径,在路由规则中找到匹配的函数来处理请求,返回数据给用户。
      • 前端路由:
      1. key是路径,value是组件(component)。
      2. 工作流程是:路由器监测到路径的变化,然后根据不同的路径展示不同的组件,达到页面的多样化。

      Vue中的路由也是一组组key-value的对应规则,称为路由规则,由路由器统一管理。

      在Vue中,路由的key是路径,value是component组件,也就是Vue中的路由器router会随时监测到页面路径的变化,然后会根据设置好的路由规则(route),展示不同的组件(value)。

      在这里插入图片描述

      生活中的路由和路由器主要是负责网络的分发和数据的发送,而Vue中的路由和路由器主要负责的功能是单页面应用(SPA)的路由跳转。

      单页面应用(SPA — Single Page Web Application):

      1. 整个应用只有一个完整的页面。
      2. 点击页面中的导航链接不会刷新页面,只会做页面的局部刷新,
      3. 数据需要通过ajax进行发送请求获取。

      也就是应用中由始至终都只有一个html页面,页面通常分为导航区和展示区,点击导航区会导致展示区的变动,实际来来回回也就只有一个页面。

      比较典型的例子就是很多后台管理系统都很适合做成单页面应用。

      现实中,美团生活的页面也是一个单页面应用。
      https://gz.meituan.com/shenghuo/
      在这里插入图片描述
      总的来说:路由就是一组对应关系。

      Vue路由的基本使用

      要在vue中实现路由,一个大前提是要按照vue的路由器 vue-router,是vue的一个插件库,专门用于实现SPA应用。

      这里要说明的是,在2022年2月7日以后,vue-router的默认版本变成了4,之前是3,并且vue-router4只能在vue3中使用,而vue-router3可以在vue2中使用,如果强行把vue-router4安装在vue2中,会报如下错误。

      在这里插入图片描述

      所以2022年2月7日之后,vue2的项目安装vue-router需要指定vue-router的版本,最终过的命令是:

      在这里插入图片描述
      安装相关插件之后,就可以开始使用vue路由,
      主要分为以下几步:
      在这里插入图片描述

      1. 创建路由组件,也就是上图中的About.vue和Home.vue,通常路由组件创建在pages文件夹下,一般组件创建在components文件夹写。
        About.vue:

      Hom.vue

      1. 创建路由器并暴露。
        通常是用项目目录下的router文件夹下创建一个index.js文件进行创建路由器并暴露。
        router/index.js
      1. 使用vue-router插件,并在创建vue实例时,把路由器配置进去,这个步骤通常在入口文件main.js中完成。
        main.js:
      1. 使用路由,这个实在App组件的template区配置好导航区和展示区。
        App.vue:

      在这里插入图片描述
      至此,vue路由的基本使用步骤已经完成,最后,看下单页面应用的单页面index.html

      使用npm run serve进行启动项目,并访问:
      在这里插入图片描述

      几个注意点

      最后,讲几个注意点:

      1. 路由组件通常放在pages文件夹下,一般组件通常放在components文件夹下。
      2. 通过导航链接进行路径的切换导致组件的切换,默认会导致组件的销毁和挂载,被切换的组件会销毁,切换的组件会挂载,比如上面例子,从About导航切换到Home导航后,About组件会被销毁,Home组件会被挂载。
        验证:往两个组件分别添加mounted和destroyed生命周期函数。
        在这里插入图片描述
        在这里插入图片描述
        效果:
        在这里插入图片描述
      3. 每个组件都有自己的$route对象,代表这个组件的路由信息,所有组件共享一个$router对象。
        验证:
        分别在两个组件的mounted函数打印这个两个对象。
        在这里插入图片描述
        结果:
        在这里插入图片描述
        验证$route的唯一性和$router的共享性:
        验证方式是,先在About组件中的mounted函数里面,把两个对象存一份到window对象里面,然后在Home组件的mounted里面直接比较。
        在这里插入图片描述
        在这里插入图片描述
        效果:
        在这里插入图片描述

      嵌套路由

      嵌套路由也叫多级路由,指的是在一个路由里面设置子路由。
      在这里插入图片描述
      新加两个组件。
      Message.vue:

      News.vue:

      router/index.js做了修改,加了如下的东西

      在这里插入图片描述
      Home组件的结构也修改了

      在这里插入图片描述
      效果:
      在这里插入图片描述
      总结:
      嵌套路由由三个要点:

      1. 嵌套路由使用路由对象的children属性配置,是一个数组,里面配置与路由的配置基本一样。
      2. 嵌套路由的路径配置开头不能加斜杠/。
      3. 嵌套路由的使用时,route-link标签的to属性的值要用全路径,比如/home/messages,要把所有上级路由的路径都带上。

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/18694.html

          热门文章

          文章分类