zoukankan      html  css  js  c++  java
  • 前端模块总结

    大概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提供了模块化方案,统一了浏览器和服务端,采用了完全静态化的方式进行模块加载。

    参考资料:

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

  • 相关阅读:
    Splay 详解
    莫队套值域分块
    浅谈区间众数
    回滚莫队分块
    带修莫队分块
    微服务规划准则
    mysql查询包含逗号的数据,并逗号拆分为多行展现
    python mysql 单连接和连接池简单示例
    代理模式八:装饰者模式
    代理模式七:迭代器模式
  • 原文地址:https://www.cnblogs.com/shijiaqi1066/p/13913581.html
Copyright © 2011-2022 走看看