单页面应用(SPA)路由通过前端JavaScript动态切换视图,核心是监听URL变化、匹配路径并渲染组件。可基于History API(pushState/replaceState/popstate)或Hash模式(hashchange)实现,推荐使用Vue Router或React Router等成熟方案,并需服务端配合fallback至index.html。

单页面应用(SPA)的路由不依赖服务端跳转,而是通过前端 JavaScript 动态切换视图,同时保持 URL 可访问、可刷新、可前进后退。核心在于监听 URL 变化、匹配路径、渲染对应组件,不重载页面。
浏览器提供 history.pushState()、history.replaceState() 和 popstate 事件,可完全控制地址栏和导航行为。
pushState() 替代 location.href 跳转,避免刷新window.addEventListener('popstate', handler) 捕获浏览器前进/后退location.pathname 并手动匹配一次,否则刷新页面会白屏history.pushState({path: '/about'}, '', '/about'),再触发视图更新利用 URL 中 # 后面的部分(即 hash),它变化不会导致页面刷新,且可通过 hashchange 事件监听。
https://site.com/#/home、https://site.com/#/user/123
window.addEventListener('hashchange', () => { render(routerMap[location.hash.slice(1)]) })
location.hash = '/user/123' 即可,无需额外状态管理实际项目中不建议手写完整路由系统,主流框架生态已提供成熟方案,支持嵌套路由、路由守卫、懒加载、参数解析等。
立即学习“Java免费学习笔记(深入)”;
routes 数组,每个项含 path、component、children;用 <router-view></router-view> 渲染出口<routes></routes> + <route></route> 声明式配置,useNavigate() 替代 history 方法启用 history 模式后,用户直接访问 /user/123 会向服务端发起请求——但服务端通常没有这个真实路径,会返回 404。
index.html
location / { try_files $uri $uri/ /index.html; }
historyApiFallback: true 自动处理开发环境基本上就这些。选对模式、监听对事件、匹配好路径、服务端兜住底,路由就稳了。
以上就是如何实现路由_javascript中单页面应用路由如何搭建?的详细内容,更多请关注php中文网其它相关文章!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号