JavaScript库的前3种模式

我会提前警告,这只是一篇简短的文章,以提醒您一些有用的模式,也许您会重新考虑您的代码。 有关其用法的更多详细信息将在稍后发布。

所以,我不想写多余的歌词,让我开始吧。

观察者

中实现交互(外部和内部)的最简单方法-创建事件总线并仅发送/监听事件。 在许多情况下,您需要与库的某些部分或应用程序进行交互。

  • 相当简单易用
  • 当您需要处理smth时很高兴组织库API

119个字节 ,nanoevents无需其他操作

中间件

中间件是库的附加层,它使您可以捕获动作,对其进行修改,取消或执行任何您想做的事情。 这是增加机会轻松创建插件的好方法。

但这不仅是一项功能。 在纳米库的上下文中,中间件使您可以将一小部分功能移出库核心,并仅在需要时使用它们。

  • 允许您通过插件扩展功能
  • 使用您的库时大大减少了样板代码
  • 在某些情况下,必须修改或取消操作

仅有342个字节,并且无需使用koa-compose进行其他操作

混合蛋白

Mixin只是一个接受实例并通过添加新属性,方法或在实例内部执行某些操作对其进行修改的函数。 同样,mixin可能具有第二个参数以及从.install方法的第二个参数传递的选项

  • 您可以将可选功能移出核心,并仅在需要时使用它们
  • 自定义smth实例的最舒适方法
  • 确实也减少了样板代码(因为我们可以制作可重复使用的插件)

实施是如此简单。 只需三行代码,您就会变得更加强大。

如果您是FP忍者(如我),并且不想突变实例并创建新实例,则可以将this与nanoclone( 220字节 )包装在一起,以克隆实例并对其进行修改。

结论

因此,如果我们获得了这种三位一体的力量,我们将获得:

  • 易于使用的库在任何情况下都没有问题。 如果可以简化,不客气,可以鼓掌50拍,并保证在该帖子中提及🙂
  • 使用低级API,您可以通过插件和事件处理在库周围构建整个生态系统。 插件也可能有自己的事件,这也很好
  • 而且,最重要的是,我们可以制作出很小的库核心。 通过以上模式,我们可以在单独的文件中添加其他或可选功能

因此,如果您有兴趣,可以查看我的新库-NanoTween。 它使用观察者来处理特定事件和混合,以提供更多方式来自定义和简化库的工作。

所以,仅此而已,🙂