【高频考点精讲】前端路由的两种实现原理:hash模式和history模式对比

前端路由的两种实现原理:hash模式与history模式深度解析

🧑‍🏫 作者:全栈老李

📅 更新时间:2025 年 5 月

🧑‍💻 适合人群:前端初学者、进阶开发者

🚀 版权:本文由全栈老李原创,转载请注明出处。

大家好,我是全栈老李。今天咱们来聊聊前端路由这个话题,这是现代单页应用(SPA)开发中绕不开的核心概念。路由就像是你家小区的导航系统,告诉访客该往哪走才能找到你家。而在前端世界里,路由就是告诉浏览器该显示哪个"页面",虽然实际上只有一个HTML文件。

为什么需要前端路由?

想象一下你去餐厅吃饭,传统网站就像中餐厅——每点一道菜服务员就给你换一套餐具(整页刷新);而单页应用更像西餐厅——一套餐具搞定所有菜品(无刷新切换内容)。前端路由就是让这套"西餐体验"成为可能的关键技术。

目前主流的前端路由实现方式有两种:hash模式和history模式。咱们一个个拆开来看。

Hash模式:老牌劲旅的智慧

Hash模式是前端路由的"老前辈"了,它的核心是利用URL中#后面的部分(hash)来实现路由切换。这个设计很巧妙,因为改变hash不会导致页面刷新,但会触发hashchange事件,让我们有机会更新页面内容。

// 全栈老李提示:这是hash路由的简单实现示例
class HashRouter {
   
   
  constructor() {
   
   
    this.routes = {
   
   }; // 存储路由路径和对应回调函数
    this.currentUrl = ''; // 当前路由路径
    
    // 监听hash变化事件
    window.addEventListener('load', this.refresh.bind(this), false);
    window.addEventListener('hashchange', this.refresh.bind(this), false);
  }
  
  // 注册路由和回调
  route(path, callback) {
   
   
    this.routes[path] = callback || function
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全栈老李技术面试

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值