迁移到 WhitestormJS v2 beta。模块系统
迁移到 WhitestormJS v2 beta。模块系统
原文:https://medium.com/hackernoon/migrating-to-whitestormjs-v2-beta-module-system-2eeaeda08a80
新模块系统🐫
在我们开始之前,我会提供一些有用的链接如果你是第一次看到 WhitestormJS:
Github 回购:https://github.com/WhitestormJS/whitestorm.js
NPM:https://www.npmjs.com/package/whs

模块
模块太棒了。模块可以做任何你可以用普通的三个模块做的事情。啮合,但更为清洁和灵活的方式。
第一步。经理
管理器用于添加和获取依赖关系。假设我的模块 A 知道有模块 B 会使用它的 API。然后模块 A 在管理器对象中为模块 B 留下一个依赖关系。
模块 B 也可以用 manager.update() 方法提供一个行为“如果组件 C 会覆盖组件的 A 依赖怎么办”。

manager() in RenderingModule
第二步。合并
模块可以有 integrate() 方法。当模块应用于组件或应用程序时,它会自动执行。通常用于向已定义的组件添加一些功能。

Example of integrate function in SceneModule
第三步。布里奇斯
桥允许开发人员制作特定于组件的 API。每个组件都可以通过提供将用“桥”处理的部分代码来扩展其灵活性。
假设我有一个材质对象。我可以将这种材料传递给模块——他们可以改变它的颜色,使它半透明或创建并用新的覆盖;

A part of WHS.Box code
功能。applyBridge() 定义当前对象应该经过下面的桥。

A part of TextureModule code
桥函数接受两个参数:输入对象和模块的范围。
桥函数的范围是组件,如 integrate() 所示

结论
你可以在 Github 上的 WhitestormJS 中开始探索其他模块 ,我们会继续添加模块(大概会添加到自述文件中)。目前你可以使用两个有助于你发展的模块,物理模块+内置模块。



