JavaScript前端路由核心是不刷新页面改变URL并响应视图变化,依赖History API或Hash机制,配合服务端fallback或hashchange事件,框架如React Router、Vue Router提供高级功能,轻量库如Page.js、Wouter满足特定场景需求。
JavaScript 实现前端路由,核心是**不刷新页面的前提下改变 URL 并响应视图变化**。这主要依赖浏览器的 History API(pushState、replaceState、popstate 事件)和 URL 的监听机制,配合动态渲染组件或内容。
适合轻量场景或学习原理,无需框架:
history.pushState({path}, '', '/about') 改变 URL(不触发刷新)window.addEventListener('popstate', e => {...}) 捕获前进/后退操作location.pathname 匹配路径,手动切换 DOM 内容或加载模块index.html,否则直连子路由会 404利用 URL 中 # 后的部分(hash),不向服务端发送,刷新也不会丢失:
location.hash 读取,监听 hashchange 事件响应变化http://site.com/#/user/123 刷新仍停留在当前 hash现代开发中更常用成熟封装,兼顾功能与体验:
createBrowserRouter 或 createHashRouter,支持嵌套路由、懒加载、导航守卫、数据加载等createWebHistory(HTML5 模式)和 createWebHashHistory,深度集成 Vue 响应式系统适用于非框架项目或需要最小依赖的场景: