什么是模块化?RequireJS的模块化VS jQuery插件

发布于 2022-09-02 12:29:40 字数 220 浏览 9 评论 0

不明白什么是模块化……
写了一篇文章,把RequireJS和jQuery插件对比,有人提出说,这不是一回事……

RequireJS的模块化概念,按我的理解就是把功能独立出来可以复用;
而jQuery写的插件也可以完成此功能(虽然没有解决依赖问题);
但认为本质上是一致的;

什么是模块化?和插件有什么不同呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

零時差 2022-09-09 12:29:40

好吧,这个坑是我挖的,让我来填!(简直为题主捉急)

先说模块化。看 wiki 的定义:

Modular design, or "modularity in design", is a design approach that subdivides a system into smaller parts called modules or skids, that can be independently created and then used in different systems.

即所谓 将逻辑细化,以便重复使用。

再来看插件化,还是 wiki):

In computing, a plug-in (or plugin, add-in, addin, add-on, addon, or extension) is a software component that adds a specific feature to an existing computer program.

即 插件化 是 一种为一个特定系统增加一个特定功能的手段

插件化 与 模块化 关系如下:

  • 插件化 是一种 特殊的模块化,每个插件都是一个模块。

  • 插件化意义下的模块(插件)只应该实现与扩展其宿主系统相关的功能,而不应携带无关逻辑。注意这里是应该,是应该,是应该,技术层面上没有限制你不能这么做,但如果不这么做你的同伴可能会打你。

  • 模块化意义下的模块则没有功能上的限制。

也就是说,它们的差别在于:

插件化只应该干和扩展有关的事,而模块化干什么都可以。

插件化只应该干和扩展有关的事,而模块化干什么都可以。

插件化只应该干和扩展有关的事,而模块化干什么都可以。

具体到 jQuery,我们看看它的定义:

jQuery is a cross-platform JavaScript library designed to simplify the client-side scripting of HTML.
-- via https://en.wikipedia.org/wiki/JQuery

这说明 jQuery 的宗旨是简化客户端的编程,因而 jQuery 插件只能干和这有关的事。

你封装了一个倒计时牌插件,可以。因为这符合宗旨。

你封装了一个 监听某个富文本编辑器的输入并实时检测有没有XSS脚本若有则提示同时在用户点击发布后Ajax提交内容至后端并处理来自后端的错误提示或成功提醒 插件,绝对不行。根据宗旨,这不应该是一个插件,着属于业务逻辑模块。诚然,jQuery 没有阻止你将其做成插件,只不过旁人看到时会恨不得吃了你。

北凤男飞 2022-09-09 12:29:40

模块是独立存在可以完成一定功能的代码段。
而插件是必须依赖相应平台才能工作的代码段。
这就是他们之间的区别。

孤者何惧 2022-09-09 12:29:40

RequireJS是用来实现js模块化的,类似的还有国产的seajs,两者的模块化规范不同,前者amd后者cmd,按照模块化的规范,每一个插件都应该是一个模块(实现一些功能),每个模块一个文件

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文