javascript - 聚合 Mithril 中的成分

标签 javascript model-view-controller mithril.js

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

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

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

谢谢

最佳答案

你应该没问题。更清晰的表达方式是:

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

您提到的“警告”没有多大意义 - View 必须返回虚拟 DOM 对象才能渲染任何内容:嵌套组件必须返回单个根节点(包含您选择的内容),并且不能直接返回节点数组 - 但这对于顶级组件来说很好。

关于javascript - 聚合 Mithril 中的成分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34114742/

相关文章:

java - Spring MVC模型对象相关的一些疑惑

java - Spring Security 用户详细信息最佳实践

javascript - Mithril.js 中大量元素的性能问题

javascript - 如何在 Mithril.js 中叠加弹出 View ?

javascript点击游戏使用较少的html

javascript - 如何更改 D3 节点 onclick 的大小

javascript - jQuery/cheerio 获取标签之间的组合 HTML

Java Swing : How to build Connect 4 GUI

javascript - 如何区分手指滚动和点击状态栏滚动?

javascript - 如何在 Mithril 中对具有 View 模型依赖性的 View 进行单元测试?