• 前端模块总结


    大概7,8年前学习过前端模块的相关只是,那时候还是jQuery时代,前端模块的概念处于萌芽阶段。经过前端在这几年的疯狂迭代,前端模块的发展已经完全超过我的想象,如果不会写就不写出正规的前端代码了。这边就在这里简单总结一下前端模块的知识,所有知识均来自互联网。

    模块的意义:

    • 增加可维护性
    • 减少全局污染
    • 可复用
    • 依赖管理

    闭包的模块化

    这种方式就是我以前学习过的模式。简单粗暴。

    CommonJS规范

    CommonJS是Node.js的模块和规范。适用于服务端。

    CommonJS模块是同步加载的。对于后端来说同步加载没什么问题,但是对于前端同步加载是不能忍受的。

    AMD规范

    James Burke提出了AMD规范。RequireJS即AMD的一个实现。这是一个给前端使用的模块化方案。

    AMD使用异步加载,解决了CommonJS在前端的不足。在后端也可以使用AMD规范,响应的工具是amdefine。

    AMD规范定义了一个全局方法define,该方法用来定义和加载模块。

    RequireJS后期提供了require方法来加载模块。

    CMD规范

    玉伯(支付宝前端工程师)提出CMD规范,并给出实现:sea.js

    CMD使用懒加载,使得CMD本身更加接近CommonJS。

    sea.js提供了 seajs.use 方法,来运行已经定义的模块。所有 define 的回调函数都不会立即执行,而是将所有的回调函数进行缓存,只有 use 之后,以及被 require的模块回调才会执行。

    ES Module

    ES6提供了模块化方案,统一了浏览器和服务端,采用了完全静态化的方式进行模块加载。

    参考资料:

    五分钟带你回顾前端模块化发展史

  • 相关阅读:
    堆排序
    如何在.Net中使用MongoDB
    二叉树遍历 C#
    对C# 中Readonly的再认识
    对C# 构造函数的理解
    TypeScript学习: 九、TypeScript的泛型
    TypeScript学习: 八、TypeScript的属性接口用法封装ajax
    锚点跳转不改变History
    设计模式笔记—代理模式
    小程序开发二:上手第一个小程序
  • 原文地址:https://www.cnblogs.com/shijiaqi1066/p/13913581.html
Copyright © 2020-2023  润新知