Ich habe dies ziemlich oft zusammen mit meiner Homepage Blocks-Komponente verwendet. Zwei Vorschläge:
Standardklassen
Ich habe die Komponente so angepasst, dass sie dem Body immer eine Klasse homepage und einem Sidebar-Link mit href=\"/custom\" eine Klasse active hinzufügt. Könnten diese Funktionen standardmäßig für den Modifier sein?
api.onPageChange(() => {
const currentRoute = router.currentRoute.name;
const customHomepageLink = document.querySelector(
'.sidebar-section-link[href=\"/custom\"]'
);
if (currentRoute === "discovery.custom") {
document.body.classList.add("homepage");
if (customHomepageLink) {
customHomepageLink.classList.add("active");
}
} else {
document.body.classList.remove("homepage");
if (customHomepageLink) {
customHomepageLink.classList.remove("active");
}
}
});
});
(Ich wollte ursprünglich den Sidebar-Link standardmäßig hinzufügen, aber die Unfähigkeit, einen solchen Link in der Benutzeroberfläche zu bearbeiten, scheint mir ein echter Nachteil zu sein, siehe How can I edit sidebar links that are added with api.addCommunitySectionLink?)
Schneller erster Anstrich
Ich wüsste nicht, wie ich das technisch angehen soll. Aber ich frage mich, ob wir, wenn wir auf einer benutzerdefinierten Homepage landen, die typischerweise eine begrenzte Auswahl an Inhalten anzeigt, das FCP für die Homepage verbessern und sie bereits rendern könnten, während der Rest der App geladen wird? Vielleicht missverstehe ich die Natur der Single-App-Architektur hier… es ist einfach etwas enttäuschend, zuerst die Ladeanimation zu sehen und dann auf einer eher einfachen Seite zu landen, die an sich ziemlich sofort da sein könnte.