Skip to the content.

核心原理

路由描述了 URL 与 UI 之间的映射关系。映射是单项的,URL 变化引起 UI 更新

一个完整的 URL 包括:协议、域名、端口、虚拟目录、文件名、参数、锚。

Hash:

改变 hash 值方式

hash 路由模式是通过 hanschange 事件监听 URL 变化,从而进行 DOM 操作来模拟页面跳转

History

浏览器有一个类似栈的历史纪录,遵循先进后出。URL 发生变都会生成一条历史记录

H5 新增两个方法 pushState()、replaceState().可以操作历史记录

history.pushState(state, title, URL)

改函数会向浏览器历史记录添加有一条。改变 URL 时,页面不会加载、刷新

history.replaceState(state, title, URL)

replaceState 的使用与 pushState 类似,区别在于 replcaceState 时修改当前历史记录而不是新建一个

react-router-dom 注入方式

react-router 的注入方式是在组件树顶层放一个 Router 组件,然后在组件树中散落着很多 Router 组件。

顶层 Router 组件负责分析监听 URL 变化,其下 Router 组件渲染对应组件

参见