前几天面试虾皮问了什么是模块化,没有解答清除。
1.什么是模块化?
简单地说,模块化就是有组织地把一个大程序拆分成独立并互相依赖的多个小文件(模块)。
模块内部有许多私有属性,只向外暴露一部分公开的接口(如可以修改私有属性的方法等)

2.为什么要模块化?
ES6之前,JavaScript语言一直没有模块(module)体系,无法把大文件有组织地划分成小块,并管理之间地依赖。但是模块化的思想一直存在。因为用Javascript写的代码越来越庞大,而网页也越来越像桌面APP。如此庞杂的代码,如果不进行模块化,就可能引发命名冲突,造成不易复用、维护性高。

一个文件对应一个模块。

总结:
最开始,JavaScript没有模块。后来:
1.有CommoneJS规范,最典型的实践就是Node.js,主要使用在服务器端,同步加载模块;
2.有AMD,最典型的实践就是RequireJS,依赖前置,主要使用在浏览器端,异步加载模块。
3.有CMD,最典型的实践就是sea.js,依赖就近,主要使用在浏览器端,异步加载模块。
4.有ES6的Module,在语言层面定义了模块,通过export和import,吸收了CommoneJS和AMD两者的优点,兼容两标准的规范。

AMD和CMD的区别:
1.在模块定义时对依赖的处理不同。AMD推荐依赖前置,定义模块时就声明其依赖的模块,而CMD就近依赖,只有在用到某个模块的时候再去require。
2.对依赖模块的执行时机处理不同。首先都是异步加载,区别在于模块执行时机,AMD是在依赖模块加载完成后就直接执行依赖模块,执行顺序和书写顺序不一致;CMD是在依赖模块加载完成后并不执行,只是下载,等待所有的依赖的模块都加载好后,再进入回调函数,遇到require语句才执行对应的模块,书写顺序保持一致。

import适合的场合
(1)按需加载
(2)条件加载
(3)动态的模块路径

参考:
前端模块化是什么

什么是模块化开发?模块化开发有哪些方法相关推荐

  1. 阿里工作流引擎_免费开源,一款快速开发模块化脚手架,含工作流引擎

    简介 lenosp 一款快速开发模块化脚手架,采用 spring boot 2.0.1.spring.SpringMvc.mybatis.shiro.activiti 工作流.swagger.ehca ...

  2. 什么是模块化,模块化开发如何实现?

    相信广大前端朋友们都遇到过这么一个问题?  什么是模块化,模块化开发如何实现? 那么什么是模块化呢,时下流行的库与框架又有哪些在利用模块化进行开发呢? 今天我从以下两个方向来进行描述,如果描述不够准确 ...

  3. 陈华编程学院 | Laravel5.6模块化实战项目开发之公共模块篇(99元)

    Laravel5.6模块化实战项目开发系列课程之公共模块篇,共47课时/13时57分.本课以Laravel5.6为开发框架,系统讲解Laravel5框架的安装和配置.后台框架结构布局.用户管理模块.网 ...

  4. 前端开发——模块化(css模块化开发)

    掌握模块化开发的思想是我们进行模块化开发的基础.他有以下几部分组成: 1.css模块化 2.html模块化 3.js模块化 模块化开发的优势 1.更好的组织和维护代码 2.按需加载 3.避免命名冲突 ...

  5. [Vue.js] 模块化 -- 前端模块化

    模块化相关规范 模块化概述 传统开发模式的主要问题 命名冲突 文件依赖 通过模块化解决传统开发模式的问题 模块化就是把单独的一个功能封装到一个模块(文件)中,模块之间相互隔离,但是可以通过特定的接口公 ...

  6. 什么是模块化?模块化的好处?

    什么是模块化? 模块化就是将js文件按照功能分离,根据需求引入不同的文件中,源于服务器端. 模块化好处? 1.解耦 对业务进行模块化拆分后,为了使各业务模块间解耦,因此各个都是独立的模块,它们之间是没 ...

  7. FL2440(S3C2440A 芯片) 开发板开发笔记

    FL2440(S3C2440A 芯片) 开发板开发笔记 开发板的拨码开关指南: FL2440 改 vnfg 飞凌嵌入式 www. witech. com. cn 09. 8. 22 1 开发板使用手册 ...

  8. 什么是模块化?模块化怎么实现?

    什么是模块化?模块化怎么实现? 前言 : 增加印象,留下脚印 ,忘记还可以翻一翻 奥利给. 1,什么是模块化 公司里一个项目是有很多程序员一起开发的,例如 "多人运动" 这个项目 ...

  9. python语言编程环境-python语言开发搭建电脑环境的方法

    python语言开发搭建电脑环境的方法 发布时间:2020-08-24 15:57:58 来源:亿速云 阅读:89 作者:小新 这篇文章主要介绍了python语言开发搭建电脑环境的方法,具有一定借鉴价 ...

  10. Oracle数据库中调用Java类开发存储过程、函数的方法

    Oracle数据库中调用Java类开发存储过程.函数的方法 时间:2014年12月24日  浏览:5538次 oracle数据库的开发非常灵活,不仅支持最基本的SQL,而且还提供了独有的PL/SQL, ...

最新文章

  1. elasticsearch7.x源码编译
  2. mysql报错排查总结
  3. mysql字符串字段类型_MySQL字符串字段类型选择的一般规则
  4. 【开源项目----Android OPenGLES渲染YUV视频文件】
  5. 处理局域网网速变慢问题的几个思路
  6. linux gpio设备驱动程序,嵌入式Linux设备驱动开发之:GPIO驱动程序实例-嵌入式系统-与非网...
  7. Maven学习(三)————Maven核心概念(二)
  8. Qt工作笔记-通过 对象树 或 delete this 释放对象
  9. 大话设计模式笔记(十二)の抽象工厂模式
  10. Dijkstra算法(matlab实现)
  11. 宝藏又小众的室内场景unity3d模型素材网站分享
  12. matlab 如何查数据类型,MATLAB数据类型
  13. node重绘图片_使用nodejs生成图片的尝试
  14. npm包--淘宝镜像下载
  15. 北京工作居住证续签流程条件及材料
  16. php GD库的使用
  17. C# 写的棋牌类游戏(全源码)。
  18. 管理仓库产品要求及“先进先出”
  19. 大数据开发面试题总结-超详细
  20. AndroidStudio制作“我”的界面,设置,修改密码,设置密保和找回密码

热门文章

  1. 社会负面事件多《王者荣耀》们是否该被“分级”
  2. 单词学习 - 提问版(无英文)(English Vocabulary):Clothes Vocabulary:List of Clothes and Accessories in English
  3. 关于C中的Int类型到底是几个字节。
  4. 油田信息化:通往智慧之路(1.3-智慧油田在全球的实践)
  5. arcgis安装(linux)
  6. 【模拟赛】2019 蓝桥杯省赛 B 组模拟赛(一)
  7. 浏览器缩小 css布局乱了ok
  8. 如何在网页中嵌入自己想要的字体(推荐阅读)
  9. stylish改变所有网页字体(小白版)步骤
  10. 读《理想国》——柏拉图