SPA Support
Klar automatically tracks client-side navigation in single-page applications.
How It Works
Klar automatically intercepts the History API to detect page navigation:
- Listens for
pushStateandreplaceState - Listens for
popstateevents (back/forward navigation) - Automatically tracks new page views on navigation
No configuration needed for most frameworks!
Supported Frameworks
Klar works out of the box with:
- React Router
- Vue Router
- SvelteKit
- Next.js (client-side navigation)
- Nuxt
- Ember
- Backbone.js
- Any framework using the History API
Manual Tracking
If automatic tracking doesn't work for your setup, you can manually track page views:
// After navigation completes
klar.trackPageview(); React Example
import { useEffect } from 'react';
import { useLocation } from 'react-router-dom';
function Analytics() {
const location = useLocation();
useEffect(() => {
klar.trackPageview();
}, [location.pathname]);
return null;
} Vue Example
import { onMounted } from 'vue';
import { useRouter } from 'vue-router';
router.afterEach((to) => {
klar.trackPageview(to.fullPath);
});Disabling Auto-Tracking
If you want to disable automatic SPA tracking:
<script
src="https://your-klar-instance.com/klar.js"
data-site-id="your-site-id"
data-auto-track="false"
defer
></script>