说我有HomeController
和Menu
(组件)。
我知道所有的道具应该来自自上而下并且是不可变的。但是,我想说我需要菜单来显示特定菜单的所有链接,过滤逻辑应该放在菜单还是控制器中?
基本上这段代码:
var items = menus.filter((item) => { item.name === 'main'; });
答案 0 :(得分:0)
如果没有进一步的背景,很难说出正确的方法:
:一种。菜单(控制器)中的逻辑 如果你有一个完整的菜单包装组件(可以调用' menu-controller'),它可以在内部找出要显示的菜单和结构,那么filter语句可以在菜单组件内部。 / p>
然后,所有相关信息都应作为道具传递给菜单组件。
您的陈述(内部菜单组件)将类似于:
var items = this.props.menus.filter((item) => { item.name === this.props.pagename; });
这将是避免膨胀的家庭控制器以及在每个页面上获得可维护和可重复使用的菜单的好方法。
<强> B中。 HomeController中的逻辑 如果菜单的行为是
然后,最好坚持MVC原则,逻辑应该在控制器内部,并保持组件尽可能纯(和哑)。 在那种情况下:
items
)传递给菜单组件