【React 全家桶】前端路由基本原理

本文介绍了前端路由的两种主要模式:History模式和Hash模式,并详细解释了History模式的工作原理,包括如何利用history API来实现前端路由的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前端路由的两种模式

前端路由主要有两种模式,一种是History模式,另一个是Hash模式

模式描述
History模式1、url是不带#的,例:react/test1;react/test2。2、在服务器运行时去进行刷新等操作时会出现404错误,它需要更多的后端配置
Hash模式1、rul是带#号的,例:react#/test1;react#/test2。2、服务器运行不会出现404。

history API

在HTML4中,已经支持window.history对象来控制页面历史记录跳转,常用的方法包括:

history API描述
history.forward()在历史记录中前进一步
history.back()在历史记录中后退一步
history.go(n)在历史记录中跳转n步骤,n=0为刷新本页,n=-1为后退一页。

在HTML5中,window.history对象得到了扩展,新增的API包括:

history API描述
history.pushState(data[,title][,url])向历史记录中追加一条记录
history.replaceState(data[,title][,url])替换当前页在历史记录中的信息。
history.state是一个属性,可以得到当前页的state信息。
window.onpopstate是一个事件,在点击浏览器后退按钮或js调用forward()、back()、go()时触发。监听函数中可传入一个event对象,event.state即为通过pushState()或replaceState()方法传入的data参数。

history模式原理的理解

首先我们要改造我们的超链接,给每个超链接增加onclick方法,阻止默认的超链接跳转(return false),改用history.pushState或history.replaceState来更改浏览器中的url,并修改页面内容。由于通过history的api调整,并不会向后端发起请求,所以也就达到了前端路由的目的。
如果用户使用浏览器的前进后退按钮,则会触发window.onpopstate事件,监听页面根据路由地址修改页面内容。

以上就是前端路由基本原理的内容,请关注《React 全家桶》专栏。
我会将自己平时项目中常见的问题以及笔试面试的知识在CSDN与大家分享,一起进步,加油。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

@Dai

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

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

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

打赏作者

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

抵扣说明:

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

余额充值