JavaScript前端路由核心是不刷新页面切换视图,通过History API或Hash模式监听URL变化并动态渲染,配合框架库(如React Router、Vue Router)实现完整路由功能,并需服务端fallback配置与SEO优化。
JavaScript 实现路由功能,核心是**不刷新页面的前提下切换视图**,配合前端框架或原生 API 模拟“页面跳转”行为。单页应用(SPA)的路由本质是监听 URL 变化、匹配路径、动态渲染对应组件或内容。
现代浏览器提供 history.pushState()、history.replaceState() 和 popstate 事件,可手动管理地址栏和历史记录,不触发页面重载。
pushState({},"", "/about") 修改 URL 并添加历史条目(不刷新)window.addEventListener("popstate", handler) 响应前进/后退操作location.pathname 渲染初始页面
兼容性更好,URL 中以 # 开头(如 /#/user),变化不会向服务器发请求,且可通过 hashchange 事件监听。
{ "#/": home, "#/user": userPage, "#/post": postPage }
hashchange,解析 location.hash,调用对应渲染函数go("/user") 方法:设置 location.hash = "#/user"
实际项目中建议使用成熟路由库,避免重复造轮子并保障稳定性与扩展性。
+ + 声明式配置,支持嵌套路由、参数解析(:id)、导航守卫等createRouter 配置 routes,支持命名路由、路由懒加载(import())、滚动行为控制pages/ 或 app/ 目录即路由),开箱即用,服务端渲染友好路由不只是跳转,还涉及状态同步、SEO、可访问性和服务端协作。
index.html,否则直接访问 /user/123 会 404/post/:id → id = "123"),注意编码问题(空格、斜杠等) 和 标签随路由更新,利于 SEO 和用户体验