从模块加载特定的方法.设计模式
Load particular methods from module. Design patterns
我最近开始使用RequireJS
,它使我能够以一种很好的方式组织我的代码。于是,define
和require
成了我最好的朋友。但是现在我看到了一个问题,我不知道如何用RequireJS
或某些特定的设计模式来解决这个问题。想象一下,我有一个非常大的模块包含无数的方法。我这样定义它:
define(function(BIG_MODULE){
return {
property_0: "value_0",
property_1: "value_1",
....
property_zillion: "value_zillion",
method_0: function(){...},
...
method_zillion: function(){...}
}
});
请,不要问我,为什么我有这么大的模块-它只是一个抽象。所以,现在的问题是-如果有可能导入或require
不是整个模块,但它的一些属性和方法?假设我以某种方式将我的模块分配给了某个本地实例,如果我调查这个实例的内部,然后我可以看到,它只包含一些特定的属性和方法。这可能吗?
您绝对应该做的一件事是不要导出任何不打算成为模块公共API一部分的内容。
也就是说,RequireJS没有只导入模块的一部分的概念。当您将一个模块列为依赖项时,RequireJS将加载该模块,加载并执行其依赖项,使用解析的依赖项调用其工厂函数(这是传递给define
的函数),并记录模块导出的内容。然后,当您在其他地方使用它时,模块的导出值将绑定到回调中相应的参数。在这段代码中
require(["foo"], function (foo) {...
你得到foo
模块"foo"
导出的所有内容。
如果你使用ES6(又名ES2015),并将ES6模块转换为AMD模块(例如,通过Babel),那么你可以有一些基于语言的部分导入概念。例如,如果foo
像这样导出return { bar: 1, baz: 2, bwip: 3 }
,那么您只能像这样导入bar
:
import { bar } from "foo";
console.log(bar);
这将把1
输出到控制台。但是请注意,这不会改变RequireJS加载和处理模块的方式。RequireJS读取整个模块并执行所有的工厂函数。上面的import
只影响加载"foo"
的代码如何访问导出的值。
相关文章:
- 用于操纵DOM API的Javascript设计模式
- 用于多个选项卡和模块化的knockoutjs设计模式
- 自动化设计模式c++
- jQuery自动完成标记新的标签设计模式
- 有没有一种方法可以在设计模式下将ng模型或工厂绑定到iframe
- Javascript MVVM 设计模式 - 如何跟踪脏状态以及谁应该做 Ajaxing
- 包含 2 个或更多对象的页面上的 JavaScript 设计模式
- 在 Node 中.js释放 zalgo 的设计模式为什么异步路径是一致的
- Django设计模式-在加载时填充客户端JavaScript变量的方法
- Javascript策略设计模式问题
- 用于处理带有promise的外部接口中的参数的设计模式
- angularjs设计模式和从服务器获取数据的最佳实践
- JavaScript设计模式的建议
- 这种设计模式什么时候才能打破
- 它是什么样的Javascript设计模式/方法
- node.js导出方法facade设计模式
- javascript设计模式-通过公共方法回调
- 从模块加载特定的方法.设计模式
- Javascript模块化设计模式——哪个更好:自调用函数,还是对象文字方法
- 用于从回调函数返回值的方法或设计模式