我一直在关注Scala Web框架Lift。我最近看到了一个名为Wiring的东西,并且想知道是否有人可以作为应用程序员向我解释这些好处。
答案 0 :(得分:7)
布线使您能够在HTML页面上声明不同元素之间的关系,并且随着谓词值的更改,相关值将自动在页面上更新。
考虑电子表格和Java / Scala程序之间的区别。在电子表格中,您可以声明单元格之间复杂的相互关系,当谓词更改时,单元格会自动更新。编写一个反映甚至非常简单的电子表格的程序通常会遇到数百或数千行,并且很难维护。
一个具体的例子是购物车。想一想当你把东西放在购物车里时必须更新的网页的所有部分。编写初始屏幕可能并不难,但是考虑一下维护的复杂性(好吧,当有什么东西被添加到购物车或从购物车中移除时,我需要更新什么,当邮政编码发生变化时等等)。
通过什么布线可以声明关系,无论谓词如何变化(例如,税收规则根据邮政编码进行更改,但是当税收规则发生变化时,任何依赖于应税小计的内容都会更新),开发人员不会不得不了解所有必须更新的家属。
答案 1 :(得分:5)
接线(参见demo)可以使多个输入字段(或单元格)相互依赖,并将结果自动传递给相关单元格。 - 所有这些都没有一行JavaScript以非常声明的方式。
正如您在演示中所看到的,您所做的就是声明细胞如何相互依赖,然后再显示它们的显示方式。无需编写或调用任何辅助函数即可连接单元格。
答案 2 :(得分:3)
您是否阅读过Lift邮件列表中关于布线的公告? https://groups.google.com/forum/#!searchin/liftweb/wiring/liftweb/WwLuiK3x0K4/e44Rm1325p4J
这两个演示应该有所帮助: http://demo.liftweb.net/simple_wiring 和 http://demo.liftweb.net/invoice_wiring
我理解StackOverflow的吸引力,但邮件列表是有关Lift的信息的金矿。
答案 3 :(得分:1)
您可能还想查看reactive-web(http://reactive-web.tk),因为它以更强大的方式为Lift添加了相同的功能。