我想为复杂的 Web 应用程序使用 JavaScript 框架。我一直在研究 Backbone.js、knockout.js 和 JavaScriptMVC。作为客户端 JavaScript 重度网络应用程序的新手,我不确定该选择哪一个。每个人都有完全不同的方法来分离关注点。模型/视图/控制器与模型/视图/视图模型与模型/视图/集合。
你们有什么感想?决定因素是什么?哪一个最容易上手?你的经历是怎样的?
我想为复杂的 Web 应用程序使用 JavaScript 框架。我一直在研究 Backbone.js、knockout.js 和 JavaScriptMVC。作为客户端 JavaScript 重度网络应用程序的新手,我不确定该选择哪一个。每个人都有完全不同的方法来分离关注点。模型/视图/控制器与模型/视图/视图模型与模型/视图/集合。
你们有什么感想?决定因素是什么?哪一个最容易上手?你的经历是怎样的?
无论哪种方式都不会出错,尤其是在构建复杂的 javascript UI 时。如果您选择不使用其中任何一个,您可能会遇到很多难以调试的代码。我个人喜欢 Backbone,但它们都是轻量级的,并且允许您自由使用模板语言(我使用 JQuery 模板)。我认为让我选择 Backbone 的原因是 Knockout 将其组件与您的 html 混合的方式:
<span data-bind="text: myItems().count"></span>
您也许可以避免在 Knockout 中使用上述结构,但这足以让我转向 Backbone。我还喜欢这样一个事实,即主干对我的项目中已经使用的下划线和 jquery 都有依赖。
以 HostDude 的评论为基础 - 这是一个功能,而不是一个错误 :) 淘汰赛概念的一部分是在您的控制器/模型和视图之间有一个层。这让我们可以将 HTML 模块化为包含数据映射的小组件。
所以是的,JS 绑定是混合在一起的,但它们没有混合到原始 HTML 中——而是它们被添加到微小的模块化 Jquery 模板中。通过在 jQuery 模板级别显式添加这些数据绑定,我们可以完全控制映射到什么的内容 - 根本不会干扰我们的底层应用程序数据模型 :) 我喜欢 Knockout!