Трудно сказать, что правильный путь без дальнейшего контекста:
А. логики внутри меню (контроллер) Если у вас есть полный компонент меню обертки (можно назвать «menu-controller»), который может определять внутренне, какое меню отображать и в какой структуре, то оператор фильтра может находиться внутри компонента меню.
Вся необходимая информация должна быть передана в качестве элементов меню.
Ваше заявление (внутри компонента меню) будет выглядеть примерно так:
var items = this.props.menus.filter((item) => { item.name === this.props.pagename; });
это будет хорошим способом, чтобы избежать раздутого HomeController и получить ремонтопригодны и многоразового меню на каждой странице.
B. Логика внутри HomeController Если поведение меню является
- очень специфично для дома, и меню не очень многоразовое между страницами
- зависит от различных других параметров Главной
Тогда, вероятно, лучше придерживаться принципа MVC, согласно которому логика должна быть внутри контроллера и содержать компоненты как чистые (и немые), насколько это возможно. В этом случае:
- let HomeController позволяет выбрать нужные элементы меню для отображения и построить структуру меню.
- передать настроенное меню (
items
) в компонент меню
- Компонент меню просто отображает элементы, которые он получает (без фильтров).