相关疑难解决方法(0)

KnockoutJS是否为构建大型Web应用程序提供了合适的架构?

快速提问:

KnockoutJS会为开发大型网络应用程序提供坚实的基础吗?我害怕有一个巨大的viewModel将变得无法维护.

背景信息

我将构建一个基于客户端的Web应用程序.后端只是一个RESTful端点.Web应用程序的整个界面将以纯HTML/CSS/JS构建 - 不涉及服务器端脚本.

网络应用程序本身将包含几个较小的应用程序和一个通用登录(有点像谷歌的网络应用程序,你有Gmail,文档,日历,阅读器等).

每个Web应用程序都有一些常用功能(例如侧边栏树视图,顶部栏菜单视图,通知系统)以及一些应用程序独特的功能.通常我会将我的应用程序分解为封装功能,例如:

var myNamespace = {
    common: {
        settings: {},
        user: {},
        notifications: {}
    },
    app1: {},
    app2: {},
    app3: {}
};
Run Code Online (Sandbox Code Playgroud)

现在,我非常喜欢使用KnockoutJS,并认为在构建项目的某些元素时(例如通知系统或具有自动刷新功能的高级网格视图,因为应用程序将支持协作)将会有所帮助.但我无法弄清楚将viewModel放到这个结构中的位置.

我只能找到如何使用KnockoutJS构建应用程序的简单示例.你真的可以建立比Twitter读者更先进的东西吗?有没有很好的例子说明如何在viewModel中分解很多功能,或者可能在很多viewModel中分解?

提出的解决方案

虽然更多理论问题(快速问题)在这里仍然没有答案,但我认为我找到了一种在实践中有效的解决方案.@Simon的回答给了我一些思考的东西,这是我到目前为止所得到的:

// First: a collection of Observables that I want to share
ld.collectionOfObservables = {
    notifications: ko.observableArray([]),
};

// Now let's define a viewModel. I put all my stuff inside the
// 'ld' namespace to avoid cluttering the global object. 
ld.viewModel1 = function (args) { …
Run Code Online (Sandbox Code Playgroud)

architecture knockout.js

27
推荐指数
1
解决办法
3360
查看次数

标签 统计

architecture ×1

knockout.js ×1