Итак, я довольно часто использую это в связке с компонентом Homepage Blocks. У меня есть два предложения:
Классы по умолчанию
Я доработал компонент так, чтобы он всегда добавлял класс homepage к тегу <body> и класс active к ссылке в боковой панели с href="/custom". Эти функции, вероятно, можно сделать настройками по умолчанию для модификатора?
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");
}
}
});
});
(Изначально я хотел добавлять ссылку в боковую панель по умолчанию, но невозможность редактировать такую ссылку через интерфейс кажется мне серьёзным недостатком, см. How can I edit sidebar links that are added with api.addCommunitySectionLink?)
Быстрый первый отрисованный кадр (FCP)
Я не совсем понимаю, как технически подойти к этой задаче. Но мне интересно: если мы попадаем на пользовательскую домашнюю страницу, которая обычно отображает ограниченный набор контента, можем ли мы улучшить показатель FCP для домашней страницы и начать её отрисовку ещё до того, как загрузится остальная часть приложения? Возможно, я неправильно понимаю архитектуру единого приложения здесь… Просто немного обидно сначала видеть анимацию загрузки, а затем оказаться на довольно простой странице, которая сама по себе могла бы появиться практически мгновенно.