Hồi chưa có AngularJS (1.0) và ReactJS thì tôi nhớ cũng phải đôi khi làm "SPA" theo yêu cầu, dù hồi đó chưa gọi là SPA.
Cho nên câu hỏi đặt ra, là không dùng Frontend framework như React Vue Solid Svelte Angular thì các bạn có thể đổi nội dung mà không phải reload page kô, thì cũng cần tìm hiểu cách thực hiện. Thực tế là làm đc đôi khi nhẹ hơn đỡ load 2 files JS "engine" như React.
Cụ thể thì gọi AJAX phía sau hậu trường, rồi cập nhật sửa cây DOM tree, rồi phải fix cái URL của trình duyệt lẫn "browser's history", tất nhiên cũng không áp dụng best practice vì chưa biết nhiều best practice, như React thì tất nhiên kô sửa cây DOM.
lúc đó 2011 làm jQuery nó cũng có nhiều cái tật, khách hàng cũng đòi support IE8, chứ nếu chỉ IE11+ thì khỏe, mà jQuery dù cung cấp API chung cross browser nhưng IE8 thì lỗi bung bét nên vẫn phải check browser version để có phiên bản riêng cho IE8.
Sau này JS ra ES6 thì jQuery kô cần thiết lắm, yêu cầu browser cũ bớt khắt khe thì jQuery thì "bớt Hot" tuy nhiên thị phần jQuery trên thế giới vẫn còn nhiều, vì animation,jQueryUI vẫn nhanh dễ hơn native_vanilla_CSS