vue.js 路由

devtools/2024/10/18 22:32:28/

客户端 vs. 服务端路由​

服务端路由指的是服务器根据用户访问的 URL 路径返回不同的响应结果。当我们在一个传统的服务端渲染的 web 应用中点击一个链接时,浏览器会从服务端获得全新的 HTML,然后重新加载整个页面。

然而,在单页面应用中,客户端的 JavaScript 可以拦截页面的跳转请求,动态获取新的数据,然后在无需重新加载的情况下更新当前页面。这样通常可以带来更顺滑的用户体验,尤其是在更偏向“应用”的场景下,因为这类场景下用户通常会在很长的一段时间中做出多次交互。

在这类单页应用中,“路由”是在客户端执行的。一个客户端路由器的职责就是利用诸如 History API 或是 hashchange 事件这样的浏览器 API 来管理应用当前应该渲染的视图。

从头开始实现一个简单的路由​

如果你只需要一个简单的页面路由,而不想为此引入一整个路由库,你可以通过动态组件的方式,监听浏览器 hashchange 事件或使用 History API 来更新当前组件。

下面是一个简单的例子:

javascript"><script setup>
import { ref, computed } from 'vue'
import Home from './Home.vue'
import About from './About.vue'
import NotFound from './NotFound.vue'
const routes = {'/': Home,'/about': About
}
const currentPath = ref(window.location.hash)
window.addEventListener('hashchange', () => {currentPath.value = window.location.hash
})
const currentView = computed(() => {return routes[currentPath.value.slice(1) || '/'] || NotFound
})
</script>
<template><a href="#/">Home</a> |<a href="#/about">About</a> |<a href="#/non-existent-path">Broken Link</a><component :is="currentView" />
</template>


http://www.ppmy.cn/devtools/34409.html

相关文章

发卡授权盗u 系统源码搭建ZHU16728

2024最新UI发卡盗U/支持多语言/更新UI界面/支持多个主流钱包去除后门板&#xff0c;搭建系统TGaqxm01&#xff0c;最好是部署智能合约后用合约地址来授权包含转账支付页面盗U授权源码。 完美提U&#xff0c;教程包含如何提u 。功能完美。 1.Php静态 2.目录puicta 3.扩sal 4.ss…

将要上市的自动驾驶新书《自动驾驶系统开发》中摘录各章片段 3

第九章 控制模块 前面提到感知是自动驾驶的“眼睛”&#xff0c;规划是自动驾驶的“大脑”&#xff0c;而控制就是自动驾驶的“四肢”。 自动驾驶系统的执行力&#xff0c;也称为运动控制&#xff0c;是将意图转化为动作的过程&#xff1b;其主要目的是向硬件提供必要的输入来…

硬盘数据找回,恢复文件,4个方法!

“我电脑硬盘不知道因为什么原因导致部分数据丢失了&#xff0c;有什么比较简单实用的硬盘数据找回方法吗&#xff1f;大家给我推荐一下吧&#xff01;” 随着信息技术的飞速发展&#xff0c;电脑硬盘作为数据存储的核心设备&#xff0c;其重要性不言而喻。然而&#xff0c;硬盘…

量子计算编程框架Forest

一、介绍 Forest是由Rigetti Computing开发的一个量子计算编程框架。Forest包括两个主要组件:PyQuil和Quil。PyQuil是Forest的Python库,用于编写和运行量子程序。它提供了一系列的API,可以用于定义量子电路、操作量子比特和测量量子比特等。通过PyQuil,用户可以使用Python…

ROS 2边学边练(38)-- 时间之旅(C++)

前言 前面的内容我们已经学习了tf2的一些基础知识&#xff0c;这一节我们即将进一步了解和学习关于tf2的一个牛逼功能 ---- 时间旅行。 动动手 时间旅行 其实没标题那么玄乎&#xff0c;正常表述就是&#xff0c;获取历史转换数据&#xff08;是不是感觉立马就变了&#xff0…

pygame学习--精灵组、碰撞检测、精灵更新

pygame学习--精灵组、碰撞检测、精灵更新 一.效果二.代码 通过pygame库,模拟种群的分化 1.X从左往右移动,表示年龄的增加;Y坐标表示阶层 2.随着X坐标不断增大,圆逐渐增大,颜色也加深 3.精灵越多,碰撞后死亡的概率越大,诞生新精灵的概率越小 4.每个精灵都有随机的运动速度及Y坐标…

游戏辅助 -- 某游戏一键端配置

游戏一键端下载地址及安装视频&#xff1a; https://pan.quark.cn/s/e6a373d94707 ​https://pan.quark.cn/s/ef7ab0c48776 准备工作 Vmware虚拟机软件&#xff1a;用于创建和管理虚拟机。 SecureCRT&#xff1a;一款支持SSH的终端仿真程序&#xff0c;用于远程登陆服务器…

Redis学习笔记(基础)

Redis学习笔记&#xff08;基础&#xff09; 一、Nosql概述1.1、为什么使用Nosql1.2、什么是Nosql1.3、阿里巴巴演进分析1.4、NoSQL的四大分类 二、 Redis入门2.1、概述2.2、Windows使用Redis2.3、linux安装2.4、redis-benchmark性能测试2.5、Redis基础知识 三、五大数据类型3.…