前几天面试虾皮问了什么是模块化,没有解答清除。
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. 在这个时代,如何管理好95后员工?
  2. R语言数据包自带数据集之mtcars数据集字段解释、数据导入实战
  3. Android开发之自定义Dialog二次打开报错问题解决
  4. linux 退出服务器_Vue实战091:Vue项目部署到nginx服务器
  5. 计算机网络总结之计算机概述
  6. Matlab中特征选择reliefF算法使用方法(分类与回归)
  7. boost::mpl模块实现has_xxx相关的测试程序
  8. 【2017.11.29 周三 转载之李航博士的文章:大数据分析到底需要多少种工具?】...
  9. Case 2-1:用空间平滑法分析华南地区的TAI语地名分布
  10. jdk Collections类
  11. HTK在win7下安装的一些问题
  12. 一文看尽 Facebook 3D视觉技术研究进展
  13. 图像特征提取之LBP特征
  14. 14届数独-真题标准数独-Day 8-20220123
  15. android冷暖色调节
  16. P61 浮点数、定点数、位类型讲解
  17. Invalid bound statement (not found)错误解决方法
  18. Python之路【第十一篇】: 进程与线程
  19. python微信公众号秒杀代码_微信跳一跳辅助python代码实现
  20. SQL语句创建、修改视图的方法

热门文章

  1. 火爆朋友圈的今天吃什么源码 随机为用户选择用餐和推荐
  2. Qt C++ Android 高仿鲨鱼记账APP V1.0.1版 个人开源新发布
  3. redis 连接超时 Redis command timed out
  4. 一文让你马上了解机器学习在马蜂窝酒店聚合中的应用初探
  5. TAISAW钛硕|TST嘉硕科技晶体振荡器在军事、航空航天中以及车载有什么应用?
  6. 服务器搭建hifi系统,初入烧友如何搭配好一套HIFI音响系统?只需要5点轻松搞定~...
  7. Centos6.5系统时间慢8小时解决方案
  8. Virtualbox虚拟机网络配置(NAT + Host-only - Bridged) 实现主机->虚拟机,虚拟机->虚拟机
  9. PHPstudy下载安装
  10. root手机 获取data/data目录下文件流程