React基本原理——路由

路由可以简单理解为导航链接。
那么为什么需要路由呢?
简单来说,在导航栏链接,不希望产生页面跳转,同时又能让用户前进或者后退,这就是路由的本质需求。
一句话解释为:
无刷新的更改地址栏地址
React路由就是实现这个的,基本原理是H5History API
那么History的API是怎么一回事情呢?
原理:
浏览器的历史记录,以栈的形式存储,后进先出,按照栈的规律,必须有的方法:进栈(pushstate)、出栈(popstate)、替换当前的(replacestate)
API使用:
pushstate/repalcestate

var state = {
    id: 2,
    name: "profile"
};
接收三个参数:{一个对象或者一个参数,描述记录的一些特性;一个字符串代表页面的标题;一个字符串代表页面的相对地址}
window.history.pushState(state, "My Profile", "/profile/");

popstate:当用户前进或者后退的时候,就会触发,可以设置监听函数

window.addEventListener("popstate", function(e) {
    var state = e.state;
    // do something...});

应用场景:
导航栏链接,页面无刷新替换内容:阻止默认的链接,,抓取连接的地址,ajax获得对应地址的内容,替换当前内容,同时地址栏变换,页面无刷新。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值