在CommonJS项目中处理全局应用程序状态(不是变量)(特别是Browserify)

ben*_*e89 5 commonjs backbone.js browserify

将Browserify与Backbone项目一起使用,我只是想知道是否有人对如何处理全局状态有任何建议/指示.根据全局状态,我不一定是指全局变量,但我的意思是应用程序范围内的值,即.当前登录的用户,应用程序路由器(用于从Views导航),一个Events对象(用于围绕应用程序进行通信).

除了将这些内容传递到可能需要它们的每个View /模块之外,还有一种更简单的方法吗?

如果我们使用Backbone作为工作示例,我的代码如下:

signupComplete: function() {
    swap(regions.content, new views.completeSignup({
        model: this.currentUser(),
        router: this
    }));
},
Run Code Online (Sandbox Code Playgroud)

它存在于我的app-router.js身上,正如你所看到的,它将路由器本身传递给实例化的View.

这种做法是在CommonJS样式的应用程序中推荐的,其中依赖关系保持在本地,建议不要使用"全局".

不确定这里是否有正确的答案,只是在寻找人们在使用Browserify构建客户端应用程序时采用这种相对年轻的概念的不同方法......

mra*_*ton 2

单例模式类型怎么样?

var router;

module.exports = function () {
  if (!router) router = new Router();
  return router;
};
Run Code Online (Sandbox Code Playgroud)