如何在不重新加载页面的情况下更改地址栏中的URL?
大家好!我是一名初级前端开发者,遇到了这样一个任务:当用户点击网站内的链接时,需要更改浏览器地址栏中的URL,但页面不应重新加载。
例如,我有一个单页应用(SPA),其中包含文章列表。当用户点击文章标题时,我希望URL从`/`变为`/article/123`,但内容通过AJAX加载,无需完全重新加载。目前我使用带有`href`的普通链接,浏览器会直接重新加载页面。我尝试过使用`window.location.href = '/article/123'`,但这也会导致重新加载。
以下是我当前代码的示例:
```javascript
// 这无法按预期工作
document.querySelector('.article-link').addEventListener('click', function(e) {
e.preventDefault();
window.location.href = '/article/123'; // 仍然重新加载页面
// 通过fetch加载内容...
});
```
如何在不重新加载的情况下正确更改URL?