JavaScript如何实现路由切换_怎样实现单页面应用导航

admin 百科 16
JavaScript路由切换核心是不刷新页面改变URL并更新视图,依赖History API(pushState/replaceState)和popstate事件监听,或Hash模式的hashchange事件,本质是路径字符串到渲染逻辑的映射。

JavaScript如何实现路由切换_怎样实现单页面应用导航-第1张图片-佛山资讯网

JavaScript 实现路由切换,核心是不刷新页面的前提下改变 URL 并响应视图更新——这正是单页面应用(SPA)导航的基础。关键不在于重载整个页面,而在于监听 URL 变化、解析路径、匹配对应组件或内容,并动态渲染。

使用原生 History API 控制地址栏与前进后退

现代 SPA 路由依赖 history.pushState()history.replaceState() 修改 URL,配合 popstate 事件监听浏览器导航操作(如点击返回/前进按钮)。

  • pushState():添加新记录到历史栈(用户可点“返回”回到上一页)
  • replaceState():替换当前历史记录(不增加新条目)
  • 监听 popstate:在 URL 改变且由浏览器导航触发时执行路由逻辑

示例片段:

function navigateTo(path) {
  history.pushState({ path }, '', path);
  renderView(path); // 自定义渲染函数
}

window.addEventListener('popstate', (e) => {
  renderView(e.state?.path || location.pathname);
});

// 点击链接时阻止默认跳转
document.querySelectorAll('a[data-router]').forEach(a => {
  a.addEventListener('click', e => {
    e.preventDefault();
    navigateTo(a.getAttribute('href'));
  });
});

登录后复制

手动实现简易前端路由器(Hash 或 History 模式)

Hash 模式兼容性更好(URL 中 #/about),History 模式更美观(/about),但需服务端配合避免 404。

立即学习“Java免费学习笔记(深入)”;

标签: vue react javascript java html js 前端 浏览器 路由器 懒加载 路由 win 常见

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~