knockout.js 有什么坑么?

2015-04-03 14:57:02 +08:00
 jarlyyn
如题。

用过一些前端mv*的框架,如backbones,angular。

最近自己弄了个小玩具。基本是后台nodejs跑服务(mud脚本),前台通过socket.io更新状态,利用node.js显示一个类似app的界面。

angular感觉太重而且不方便和jQuery一起用,backbones没有数据绑定。看了react.js感觉更不靠谱了。那是做大型的项目的底层组件。我只是做一个简单的应用程序的界面而已。

然后看了knockout.js,感觉异常合适。我不需要model.不需要router.不需要controller.只需要一个databind的view.

但不论是google trend还是论坛上的讨论,感觉knockout都没杀人关注了,是不是有什么看文档看不出来的坑?
11007 次点击
所在节点    问与答
16 条回复
ituren
2015-04-03 15:12:55 +08:00
如果只是要单向data驱动view的话
一般的template就可以了吧
就1K左右而已
jarlyyn
2015-04-03 15:21:26 +08:00
@ituren
双向,而且在更新一个值后,界面上可能有多个元素要更新。

而且元素数量可能还不定。
ETiV
2015-04-03 15:55:21 +08:00
推荐关注 / 使用 vue.js ; 好用, 坑少, 易上手.
mcfog
2015-04-03 16:02:25 +08:00
knockout 比较古老,但真正的竞品应该只有vuejs一家

knockout兼容性比较好,但`.name()`读 `.name(value);`写 相对啰嗦
vuejs牺牲了兼容性换取更直观的API(直接属性读写)

印象当中ko的“虚拟元素”也就是类似<!--ko xxx-->的形式在vuejs中没有找到替代,然后vuejs里面自定义行为感觉比ko舒服一点
jarlyyn
2015-04-03 16:54:19 +08:00
@ETiV

谢谢推荐。

但是vue有浏览器兼容性要求的吧?

我去看下。
ETiV
2015-04-03 17:03:18 +08:00
@mcfog 其实我没用过 knockout~

虚拟元素, 我看了一下官方文档
http://knockoutjs.com/documentation/custom-bindings-for-virtual-elements.html

感觉跟我遇到的情况类似:

前两天写代码的时候, 碰到了 dl > dt,dd 的 repeat 问题. 又不像 ul > li , 琢磨了半天.
后来从官方 issues 看到了项目发起人的回复:

"使用 <template> 标签完成这个功能."

具体就是
```
<dl>
__<template v-repeat="rows">
____<dt>{{title}}</dt>
____<dd>{{content}}</dd>
__</template>
</dl>
```

不知道有没有格式., 先用下划线顶上...
jarlyyn
2015-04-03 17:05:22 +08:00
@ETiV
vue不支持IE8......

我在公司的兼容性也只能推行到无视ie6,7而已。

ie8可是现在国内占有率最高的……
ETiV
2015-04-03 17:07:56 +08:00
@mcfog 我又细看了一下, 可能我对virtual elements理解有误~~
ETiV
2015-04-03 17:11:03 +08:00
@jarlyyn 看你说 "最近自己弄了个小玩具", 以为是自用的呢
jarlyyn
2015-04-03 17:15:21 +08:00
@ETiV

的确自用的,拿自用的东西试手,好用就推广,不好用拉倒……
2code
2015-04-03 17:21:36 +08:00
KO有点太老了,感觉没有推广的必要了,试试其他的MV*框架
iwege
2015-04-03 18:05:43 +08:00
习惯backbone的话配合http://rivetsjs.com/ 可以解决一些view的data bind问题。
clino
2015-04-03 20:18:24 +08:00
avalonjs 可以和 jq 一起用
thinkif
2015-04-03 20:45:32 +08:00
手里有个内部管理类的Web应用用的是KO,正常双向绑定什么的没有明显大坑,当然功能也相对其他的 MV* 来的简单
onlyurei
2015-04-29 06:03:23 +08:00
用了3年的knockout,so far so good。
刚开源我用knockout和其他几个库搭起来的微型单页程序框架,有兴趣可以试用:
https://github.com/onlyurei/knockout-spa
Axurez
2015-11-12 11:53:25 +08:00
@mcfog 还有 jsblocks

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/181355

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX