Vue-Router 路由管理器

news2024/9/24 5:51:32

文章目录

  • 知识点
    • 前端路由的概念及作用
    • Vue-Router 的安装
    • Vue-Router 的基本使用


知识点

  • 前端路由的概念及作用
  • Vue-Router 的安装
  • Vue-Router 的基本使用

前端路由的概念及作用

需要大家注意的是,这里的路由可不是指我们日常生活中的路由器 😂 ,但是其实现原理基本相同。它代表一个 URL 与相应处理程序的映射关系。

用户在输入要访问的 URL 之后,路由会解析 URL 中的路径,之后根据映射表中的映射关系查找相应的预设函数,并将结果返回给用户,以此完成一次操作。

其工作流程如下图所示:
在这里插入图片描述

以上图为例,当一个用户使用 https://www.lanqiao.cn/a 来访问网页时,Web 服务会接收到这个请求,然后解析 URL 中的路径 /a,在 Web 服务程序中该路径对应着响应的处理逻辑,程序会把请求交给路径所对应的处理逻辑,这样就完成了一次“路由分发”,这个分发就是通过“路由”来完成的。

简单地说,路由所做的工作就是:根据不同的 URL 地址展示不同的内容或页面。

前端路由不同于传统路由,它不需要服务器来进行解析,而是通过一个 hash 函数或者 H5 提供的 history API 来实现。一般使用前端路由的应用为不涉及到页面间跳转的单页面应用,也就是我们当下正在学习的。😄

前端路由的优缺点
前端路由的优点如下:

  • 页面刷新速度快:由于不需要向服务器发送请求,所以这个过程不会受到网络延迟的影响,实际上只是完成部分组件间的切换,因此页面的刷新速度会比较快,用户体验也更好些。
  • 复用性强:由于使用前端路由的应用为单页面应用,所以代码中很多 CSS、JS 都可以共用,避免了过多的重复加载,大大提升了性能。
  • 页面状态可记录:如果不使用前端路由,仅通过 Ajax 在页面进行局部切换的应用,由于页面 URL
    始终保持不变,因此页面的状态是无法记录的,而前端路由很好的解决了这个问题。例如,使用了前端路由的应用中访问
    https://www.lanqiao.cn/a 这个链接,再打开后会直接触发 /a 匹配的路由页面中的事件。

当然,前端路由也有一些缺点,比如使用浏览器的前进、后退键的时候,会重新发送请求,没有合理地利用缓存。

Vue-Router 的安装

Vue-Router 是 Vue 的官方路由,专门为 Vue 的单页面应用量身打造。

其功能包括:

  • 嵌套路由映射
  • 动态路由选择
  • 模块化、基于组件的路由配置
  • 路由参数、查询、通配符
  • 展示由 Vue 的过渡系统提供的过渡效果
  • 细致的导航控制
  • 自动激活 CSS 类的链接
  • HTML5 history 模式或 hash 模式
  • 可定制的滚动行为
  • URL 的正确编码

与当前大部分流行的框架或插件的使用方式相同,Vue-Router 的安装也有 CDN 和 NPM 两种主流方式。如下所示:

CDN 引入
Unpkg.com 提供了基于 npm 的 CDN 链接。

https://unpkg.com/vue-router@2.0.0/dist/vue-router.js

NPM 安装

我们可以在项目文件夹下直接运行以下命令来安装 Vue-Router。

npm install vue-router@4

安装完成后,我们还需通过简单配置将 Vue-Router 与 Vue 实例联系在一起。

Vue-Router 的基本使用

我们通过一个单页面应用来看看 Vue-Router 的使用,其基本步骤如下所示:

  • 使用 router-link 组件来导航,其通过 to 属性来指定跳转链接(这相当于 HTML 中的 a 标签)。
  • 使用 router-view 组件定义路由出口,路由匹配到的组件将会渲染到此处。
  • 使用 const routes = [{ path, component }] 来定义路由(路径和组件名)。
  • 使用 const router = new VueRouter({}) 来创建路由实例,在其中传入上一步定义的路由配置 routes。
  • 创建和挂载根实例,在 new Vue 中挂载上一步创建的路由实例 router。

使用以下命令获取 Vue 和 Vue-Router 文件。

wget https://labfile.oss.aliyuncs.com/courses/1262/vue.min.js
wget https://labfile.oss.aliyuncs.com/courses/10532/vue-router.js
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script src="vue.min.js"></script>
    <script src="vue-router.js"></script>
  </head>

  <body>
    <div id="app">
      <h1>路由的使用</h1>
      <p>
        <!-- 使用 router-link 组件来导航 -->
        <router-link to="/home">首页</router-link>
        <router-link to="/hot">热门</router-link>
        <router-link to="/class">分类</router-link>
      </p>
      <!-- 路由出口 -->
      <!-- 路由匹配到的组件将渲染在这里 -->
      <router-view></router-view>
    </div>
    <script>
      const Home = { template: "<div>首页</div>" };
      const Hot = { template: "<div>热门</div>" };
      const Class = { template: "<div>分类</div>" };

      // 定义路由
      const routes = [
        { path: "/home", component: Home },
        { path: "/hot", component: Hot },
        { path: "/class", component: Class },
      ];

      // 创建 router 实例,然后传 routes 配置
      const router = new VueRouter({
        routes,
      });

      // 创建和挂载根实例
      const app = new Vue({
        router,
      }).$mount("#app");
    </script>
  </body>
</html>

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/376855.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Allegro如何打开或者关闭DFA规则设置操作指导

Allegro如何打开或者关闭DFA规则设置操作指导 在用Allegro做PCB布局的时候,器件与器件之间的DFA规则可以避免器件出现装配问题。如下图 当DFA规则设置好之后,如何打开或者关闭规则,具体操作如下 点击Setup点击Constraints

华为OD机试题,用 Java 解【相同数字的积木游戏 1】问题

最近更新的博客 华为OD机试题,用 Java 解【停车场车辆统计】问题华为OD机试题,用 Java 解【字符串变换最小字符串】问题华为OD机试题,用 Java 解【计算最大乘积】问题华为OD机试题,用 Java 解【DNA 序列】问题华为OD机试 - 组成最大数(Java) | 机试题算法思路 【2023】使…

2023年“网络安全”赛项浙江省金华市选拔赛 任务书

2023年“网络安全”赛项浙江省金华市选拔赛 任务书 任务书 一、竞赛时间 共计3小时。 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 第一阶段单兵模式系统渗透测试 任务一 Windows操作系统渗透测试 任务二 Linux操作系统渗透测试 任务三 网页渗透 任务四 Linux系统…

硬件工程师——门控开关的设计

假设自己是一个工程师&#xff0c;那么我们怎么介绍自己呢&#xff1f; 我们首先需要可以自己独立设计项目&#xff0c;需要每一个工程师在开始阶段可以独立做项目&#xff0c;从而提高薪水 那么我们怎么提高做项目的能力呢&#xff1f; 通过项目来积累经验&#xff0c;在短…

百亿数据,毫秒级返回查询优化

近年来公司业务迅猛发展&#xff0c;数据量爆炸式增长&#xff0c;随之而来的的是海量数据查询等带来的挑战&#xff0c;我们需要数据量在十亿&#xff0c;甚至百亿级别的规模时依然能以秒级甚至毫秒级的速度返回&#xff0c;这样的话显然离不开搜索引擎的帮助&#xff0c;在搜…

OpenHarmony的未来和如何做好一个开源社区

今天要分享的文章&#xff0c;可能更多只是作为一种观点。主要包括2个内容。OpenHarmony的未来和如何做好一个开源社区&#xff0c;好的&#xff0c;接下来开始今天的内容。 你对OpenHarmony的未来如何看待&#xff1f; OpenHarmony的未来看起来非常光明&#xff0c;因为它具…

把 ChatGPT 加入 Flutter 开发,会有怎样的体验?

前言 ChatGPT 最近一直都处于技术圈的讨论焦点。它除了可作为普通用户的日常 AI 助手&#xff0c;还可以帮助开发者加速开发进度。声网社区的一位开发者"小猿"就基于 ChatGPT 做了一场实验。仅 40 分钟就实现了一个互动直播 Demo。他是怎么做的呢&#xff1f;他将整个…

如何管理好仓库/库房?

仓库管理是企业管理中不可缺少的一部分&#xff0c;事关企业能否正常运行的关键之一&#xff0c;古人有云&#xff1a;“三军未动粮草先行”&#xff0c;一个企业仓库管理做不好&#xff0c;他的生产管理肯定也是做不好的&#xff0c;不是说生产管理人员的管理能力不具备&#…

跨设备文件传输工具横评

文章目录对比QQ微信SnapDropLocalSendIntelUnisonLANDropTailscaleAirDroidSendAnywhere参考文献对比 传输速度测试条件大致相同&#xff0c;文件大小约为 100 MB 工具优点缺点传输速度备注QQ支持断点续传不要求同一局域网需要安装1.81 MB/s微信方便需要安装不支持大文件传完还…

ESP32设备驱动-ML8511紫外线传感器驱动

ML8511紫外线传感器驱动 1、ML8511介绍 ML8511 是一款紫外线传感器,适用于室内或室外获取紫外线强度。 ML8511 配备了一个内部放大器,可根据紫外线强度将光电流转换为电压。 这种独特的功能提供了与 ADC 等外部电路的简单接口。 在掉电模式下,典型的待机电流为 0.1 μ \mu…

认识 ECharts

文章目录前言知识点什么是 ECharts获取 ECharts 的方式从 CDN 获取ECharts 初体验前言 ECharts 是一个使用 JavaScript 实现的开源可视化库。它可以在 PC 端和移动设备上运行&#xff0c;目前兼容的浏览器有 IE8/9/10/11&#xff0c;Chrome&#xff0c;Firefox&#xff0c;Safa…

数组(三)-- LeetCode[370][1109][1094] 区间加法

1 区间加法 1.1 题目描述 1.2 求解思路 常规的思路很容易&#xff0c;给区间 nums[i: j] 加上 val&#xff0c;那就⼀个 for 循环给它们都加上呗&#xff0c;但这种思路的时间复杂度是 O(N)O(N)O(N)&#xff0c;由于这个场景下对 nums 的修改⾮常频繁&#xff0c;所以效率会很…

【Redis】常见命令介绍(二)

&#x1f697;Redis学习第二站~ &#x1f6a9;起始站&#xff1a;【Redis】概述&环境搭建(一) &#x1f6a9;本文已收录至专栏&#xff1a;数据库学习之旅 &#x1f44d;希望您能有所收获 一.概述 Redis是典型的key-value数据库&#xff0c;key一般是字符串&#xff0c;而…

电子科技大学软件工程期末复习笔记(八):软件维护

目录 前言 重点一览 软件维护的定义 四种类型的维护 软件维护的必要性 软件维护的成本 软件维护的困难性 可维护性的定义 决定软件可维护性的因素 软件维护的过程模型 维护费用估算 软件再工程 软件逆向工程 本章小结 前言 本复习笔记基于王玉林老师的课堂PPT与…

微信小程序开发【贰】

随手拍拍&#x1f481;‍♂️&#x1f4f7; 日期: 2023.01.28 地点: 台州 介绍: 吃完午饭后走在门前的步行道上&#xff0c;恰逢疫情高峰&#xff0c;整条步行道上只有我一个人&#xff0c;旁边的河面上时而掠过几只水鸟&#xff0c;试图打破这宁静的画面。墙上的涂鸦见证了疫情…

华为OD机试题,用 Java 解【人数最多的站点】问题

最近更新的博客 华为OD机试题,用 Java 解【停车场车辆统计】问题华为OD机试题,用 Java 解【字符串变换最小字符串】问题华为OD机试题,用 Java 解【计算最大乘积】问题华为OD机试题,用 Java 解【DNA 序列】问题华为OD机试 - 组成最大数(Java) | 机试题算法思路 【2023】使…

华为OD机试题,用 Java 解【最小传递延迟】问题

最近更新的博客 华为OD机试题,用 Java 解【停车场车辆统计】问题华为OD机试题,用 Java 解【字符串变换最小字符串】问题华为OD机试题,用 Java 解【计算最大乘积】问题华为OD机试题,用 Java 解【DNA 序列】问题华为OD机试 - 组成最大数(Java) | 机试题算法思路 【2023】使…

Java-扑克牌的创建以及发放

Java-扑克牌的创建以及发放题目&#xff1a;创建一个扑克牌(不需要包含大小王)&#xff0c;分别分发给3个人&#xff0c;一个人发5张牌&#xff0c;输出结果要求包含全套牌(52张牌)&#xff0c;以及3个人各自的牌的花色以及数字。1.扑克牌的源代码2.扑克牌运行结果3.扑克牌代码…

一种多场景通用备份容灾方案

导购链路中&#xff0c;因为业务对SLA的要求和下游无法保持一致&#xff0c;导致很多业务场景需要使用备份容灾。如当业务依赖的下游偶现异常或者超时的情况&#xff0c;在下游无法提供强依赖的数据时&#xff0c;为保证不空窗且当前业务对数据实时性要求不高时&#xff0c;可以…

【数据结构】单链表的C语言实现--万字详解介绍

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;数据结构 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 文章目录1.链表1.1 链表的概念…