Gente, consegui fazer uma SPA simples de uma forma diferente da mostrada no curso. Com a ressalva do ultimo trecho de código. Sem o código ao final window.init = init nada funciona, alguém saberia me explicar para que eu uso ele, uma vez que eu já coloquei um evento de load no arquivo deveria funcionar sem maiores problemas ?
import {Home} from "./src/componentes/CompHome/compHome.js";
import {About} from "./src/componentes/CompAbout/compAbout.js";
import {Projetos} from "./src/componentes/CompProjetos/compProjetos.js";
const div = document.querySelector('[data-container]');
const rotas = {
'/':Home,
'/about':About,
'/projetos':Projetos
}
function init(pathname){
div.innerHTML="";
window.history.pushState({},window.location, window.location.origin + pathname)
div.appendChild(rotas[window.location.pathname]());
}
window.addEventListener('load',()=>{
div.appendChild(rotas[window.location.pathname]());
})
window.onpopstate = ()=>{
div.innerHTML="";
div.appendChild(rotas[window.location.pathname]());
}
window.init=init;