在秘银中汇总组件

时间:2015-12-06 06:27:50

标签: javascript model-view-controller mithril.js

我的网页中有一个顶级组件,用于聚合其他组件。现在我只需要在按下按钮时渲染一个组件,即在我的视图模型中设置一个标志。那么,我应该如何使用我的顶级组件呢? 我应该根据标志的值使用if else条件,而不是在顶层包含隐藏组件。

toplevel.view = {
    show_comp() ? [comp1, comp2, hiddencomp] : [comp1, comp2]
}

这里我根据show_comp()的值渲染隐藏的组件。这是惯用的方法还是我可以做得更好? 另外,我在其中一个警告中发现视图不应该返回虚拟dom对象,就像我在上面的代码中返回一样。那么,我将面临上述代码的问题吗?

谢谢

1 个答案:

答案 0 :(得分:3)

你应该没事。更明确的表达方式是:

toplevel.view = {
    return [comp1, comp2, show_comp ? hiddencomp : null]
}

警告'你提到没有多大意义 - 视图必须返回虚拟DOM对象以呈现任何内容:嵌套组件必须返回单个根节点(内容为您的选择),并且不能直接返回节点数组 - 但这适用于顶级组件。