欢迎访问宙启技术站
智能推送

JS路由跳转的简单实现代码

发布时间:2023-05-18 04:13:59

要实现JS路由跳转,我们需要用到HTML5的History API。简单来说,History API可以让我们在不刷新页面的情况下改变URL,并且可以监听URL的变化。

下面是一个简单的JS路由跳转的实现代码:

// 首先定义一个路由表
const routes = {
  '/': homePage,
  '/about': aboutPage,
  '/contact': contactPage
};

// 定义一个函数,根据URL加载对应的页面
function loadPage() {
  // 获取当前URL
  let currentURL = window.location.pathname;

  // 如果当前URL没有在路由表中定义,跳转到404页面
  if (!routes[currentURL]) {
    currentURL = '/404';
  }

  // 清空页面内容
  document.getElementById('app').innerHTML = '';

  // 加载对应的页面
  routes[currentURL]();
}

// 定义路由函数,使用History API改变URL
function navigateTo(url) {
  window.history.pushState(null, null, url);
  loadPage();
}

// 监听popstate事件,当URL发生变化时重新加载页面
window.addEventListener('popstate', loadPage);

// 加载首页
loadPage();

以上代码中,我们首先定义一个路由表,将不同的URL映射到不同的页面上。然后定义一个loadPage函数,根据当前URL加载对应的页面。loadPage函数会先获取当前URL,在路由表中查找对应的页面,如果找不到则跳转到404页面。然后通过innerHTML方法清空页面内容,再调用对应的页面函数来加载页面内容。

接下来定义一个navigateTo函数,用于改变URL并加载对应的页面。navigateTo函数使用History API的pushState方法改变URL,并调用loadPage函数来重新加载页面。

最后,我们监听popstate事件,当URL发生变化时重新加载页面。在页面初始化时调用loadPage函数,加载首页。

这样,我们就可以使用JS路由实现不刷新页面的单页应用了。