这是elm-mdl的一个例子
Button.render Mdl [0] model.mdl
[ Button.raised
, Button.ripple
, Button.onClick PollMsg
]
[ text "Fetch new"]
这里的索引是[0]。我假设如果我正在构建单页面应用程序,我可以放置像[“page0”,0]这样的索引。是吗?
但这是否意味着应用程序中所有按钮的所有mdl数据都在内存中?它是如何工作的?
答案 0 :(得分:5)
elm-mdl使用这些标识符进行内部处理。特别是,这些ID是您可以轻松调用update
和view
的原因。
正如@pierrebeitz已经解释的那样,这些整数存在于应用程序内存中,但这不是问题(即使你有数百个按钮)。
至于在更大的环境中使用elm-mdl,您至少有以下两种选择:
使用[0, 0], [0, 1]
之类的数字组合等。如果在循环中生成多个类似的elm-mdl组件(f.ex.单选按钮等),这将特别有用。在您的代码中,第一个索引可能是硬编码的,但第二个整数源于循环。
对于整体情况,您需要记住,这些整数是您的实际elm-mdl Model实例的本地。换句话说,创建单独的模型允许您重用这些整数。这意味着您可以使用TEA组件,其中组件具有自己的模型,包括elm-mdl模型。由于每个组件都可以自由控制它使用的标识符,因此您可以更轻松地将它们搞砸。
所有这一切,我认为这些索引是elm-mdl最糟糕的部分。我真的很感激,如果他们可以摆脱它们(当然没有过度复杂的结果代码),但暂时我认为它们是一个非常棒的材料设计库的价格标签。