最近,我开始学习Knockout,我认为这是一个非常棒的框架。不过,我有一个顾虑。
我发现,在非平凡的绑定情况下,我的视图(标记)中有一些javascript代码片段。事实上,Knockout文档中的许多代码示例也证明了这一点。
,这是否使淘汰赛本质上具有侵扰性?
我是否应该接受它,而不是在实践中担心它?
或者我应该使用什么模式/技术来使淘汰赛变得不引人注目?
发布于 2012-11-19 21:30:17
问得好。我编写复杂的KnockoutJS视图已经有一段时间了,直到切换到Ryan Niemeyer的类绑定提供程序,我才感到满意。
Knockout ClassBindingProvider允许您在JavaScript对象中声明绑定,然后通过类似于css类的data-class属性引用它们。效果很好!
看一个示例TodoMVC应用程序。
发布于 2012-11-19 10:06:36
尝试将Javascript排除在绑定之外,只用于元数据。
所以不要做
<span data-bind="visible: errors().length > 0">You have errors</span>使用可观测的计算值
<span data-bind="visible: hasErrors">You have errors</span>更新:我继续为KO创建了一个configuration,它可以在这里找到https://github.com/AndersMalmgren/Knockout.BindingConventions/wiki
而不是做<button data-bind="click: save">Save</button>,而是做<button data-name="save">Save</button>。库将按照约定理解要将保存函数连接到单击处理程序按钮。按照惯例,如果存在canSave成员,它也将绑定enable。http://jsfiddle.net/3Ajnj/15/
发布于 2014-03-19 18:26:36
我是否应该接受它,而不是在实践中担心它?
我的理解是,“低调”指的是一些不同的东西。
“低调”的一个方面是网站应该在JavaScript支持有限或根本不支持的浏览器上维护核心功能。为此,您对这一原则的关注应取决于您的目标受众。我从事过一些项目,在这些项目中,我非常了解我的目标用户,因此我有幸说:“如果你想利用这个网络应用程序,请使用像Chrome这样的现代浏览器,并启用JavaScript。”在这种情况下,可以随意使用最新的、最令人敬畏的前端框架。
我从事过其他项目,但情况并非如此--我们必须非常小心地使用诸如Knockout这样的框架。如果您在很大程度上依赖于Knockout在应用程序中执行核心功能,那么您的应用程序本质上就是突出的。这是否应该困扰你取决于你的目标观众。
“不引人注目的JS”的另一个原则是将JavaScript和HTML之间的关注点分离开来。我实际上在辩论这个原则有多重要。我认为更重要的原则是按照MVVM模式将视图模型逻辑和显示逻辑之间的关注点分离开来。即使您在数据绑定中加入了一些JavaScript逻辑,但“敲除”在鼓励视图/vm关注点的清晰分离方面做得非常出色。只要它是严格的视图逻辑,我认为它实际上属于视图。
https://stackoverflow.com/questions/13451414
复制相似问题