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

前言 : 增加印象,留下脚印 ,忘记还可以翻一翻 奥利给。

1,什么是模块化
公司里一个项目是有很多程序员一起开发的,例如 “多人运动” 这个项目
有程序员a ,程序员b ,程序员c
程序员a 写了 aaa.js 里面有几千行 几万行代码
程序员b 写了 bbb.js 里面有几千行 几万行代码
程序员c写了 ccc.js 里面有几千行 几万行代码

随着前端越来越np,代码量越来越多,那么维护代码就是一件很困难的事情
会出现 全局变量同名问题,a程序员 var flag = ture;b程序员 var flag = false;
b程序员 加班到夜里2点 找自己代码也找不出问题,他不可能看a的代码,那么又是几个晚上,
所以就有了模块化
模块化早期是用闭包体现出来的 使用模块作为出口
a程序员 导出

var moduleA = (function () {// 导出的对象var obj = {}// 小明var name = '小明'var age = 22function sum(num1, num2) {return num1 + num2}var flag = trueif (flag) {console.log(sum(10, 20));}obj.flag = flag;obj.sum = sum;return obj
})()

b程序员导入

;(function () {// 1.想使用flagif (moduleA.flag) {console.log('我是天才, 哈哈哈');}// 2.使用sum函数console.log(moduleA.sum(40, 50));
})()

随着前端的发展,我们定义了很多模块规范
常见的有CommonJS , CMD , AMD , ES6 Modules

2,CommonJS模块化实现(一点了解)
CommonJS导出:

CommonJS导入:

node.js 的 CommonJs
这样你是没有用的需要有人给你解析 ,那么怎么做呢 看一下我另一篇文章
webpack模块化打包工具入门
我们现在去看一下es6模块化实现吧

3,ES6 Modules模块化实现

导入

var name = '小明'
var age = 18
var flag = truefunction sum(num1, num2) {return num1 + num2
}if (flag) {console.log(sum(20, 30));
}// 1.导出方式一:
export {flag, sum
}// 2.导出方式二:
export var num1 = 1000;
export var height = 1.88// 3.导出函数/类
export function mul(num1, num2) {return num1 * num2
}export class Person {run() {console.log('在奔跑');}
}
//默认导出  注意 只能写一个 你浏览器也只能一个默认吧 不用我说原因了吧
export default function (argument) {console.log(argument);
}

导出

// 1.导入的{}中定义的变量
import {flag, sum} from "./aaa.js";if (flag) {console.log('小明是天才, 哈哈哈');console.log(sum(20, 30));
}// 2.直接导入export定义的变量
import {num1, height} from "./aaa.js";console.log(num1);
console.log(height);// 3.导入 export的function/class
import {mul, Person} from "./aaa.js";console.log(mul(30, 50));const p = new Person();
p.run()// 4.导入 export default中的内容
import addr from "./aaa.js";addr('你好啊');// 5.统一全部导入
// import {flag, num, num1, height, Person, mul, sum} from "./aaa.js";import * as aaa from './aaa.js'console.log(aaa.flag);
console.log(aaa.height);

注意
这时候引用就不一样了,上一下 index.html吧
type = “module” 你的浏览器会帮你模块化的

<script src="aaa.js" type="module"></script>
<script src="bbb.js" type="module"></script>
<script src="mmm.js" type="module"></script>

这样变量不仅不会重名造成错误,还以复用。

有事联系QQ:1485731520

什么是模块化?模块化怎么实现?相关推荐

  1. 编程思想-模块化-模块化设计:模块化设计

    ylbtech-编程思想-模块化-模块化设计:模块化设计 模块化设计,简单地说就是程序的编写不是开始就逐条录入计算机语句和指令,而是首先用主程序.子程序.子过程等框架把软件的主要结构和流程描述出来,并 ...

  2. 编程思想-模块化-模块化程序设计:模块化程序设计

    ylbtech-编程思想-模块化-模块化程序设计:模块化程序设计 模块化程序设计是指在进行程序设计时将一个大程序按照功能划分为若干小程序模块,每个小程序模块完成一个确定的功能,并在这些模块之间建立必要 ...

  3. Android的组件化和模块化

    Android随着业务的增多,而且后续新的需求的增加,代码的修改会变得非常频繁 然后最近在看组件化和模块化 公司的业务没有那么大,所以这种方式我并没有采取 但是还是需要了解下他的使用机制 还有优缺点之 ...

  4. 基于Ext JS的模块化应用框架搭建及开发

    Ext JS模块化开发 早期基于Ext JS的Web开发方式,是在HTML中引入JS和CSS文件,典型的就是引入 ext-all.js 这样的文件.ext all 包含的内容很多, 有基本的核心组件. ...

  5. JavaScript:模块化及模块化规范

    什么是JavaScript的模块化?模块化模块化,那就是先有模块,模块是什么?模块就是将一个复杂的程序按照一定的规则拆分并单独封装成一个块或者文件,每一个块内都有自己的内部数据和方法,并且会向外暴露一 ...

  6. 前端项目怎样合理使用模块化和闭包?

    一. 开发中遇到的问题 通常我们在做项目的时候一般会出现这样的一种情况. <script>// a.jsvar varity=1;function changeHTML(){//defin ...

  7. Node.js基础(二)-- 模块化、npm与包

    1. 模块化的基本概念 1.1 什么是模块化 模块化是指解决一个复杂问题时,自顶向下逐层把系统划分成若干模块的过程.对于整个系统来说,模块是可组合.分解和更换的单元. 1.1.1. 现实生活中的模块化 ...

  8. 前端工程师必备:前端的模块化

    模块化的理解 什么是模块? 将一个复杂的程序依据一定的规则(规范)封装成几个块(文件), 并进行组合在一起: 块的内部数据/实现是私有的, 只是向外部暴露一些接口(方法)与外部其它模块通信: 一个模块 ...

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

    什么是模块化 模块化是指解决一个复杂问题时自顶向下逐层把系统划分成若干模块的过程,有多种属性,分别反映其内部特性.所谓的模块化开发就是封装细节,提供使用接口,彼此之间互不影响,每个模块都是实现某一特定 ...

  10. 什么是模块化与模块化的优缺点

    什么是模块化: 模块化就是将复杂的系统分解成一个个独立部分,每个部分实现不同的功能,且互不影响.变为更好管理模块的方式. 模块化的意义: 模块化的意义在于最大化的设计重用,以最少的模块.零部件,更快速 ...

最新文章

  1. VC实用小知识总结 (一),转http://blog.csdn.net/myiszjf/article/details/10007431
  2. linux 内核编译 Kconfig文件详解
  3. 简单了解各种序列化技术-Avro序列化
  4. Python学习笔记7:函数对象及函数对象作參数
  5. Eclipse安装STS插件
  6. 收获,不止SQL优化——抓住SQL的本质--第三章
  7. 安卓团课快进_青年大学习网上主题团课第十季第七期答案
  8. 蓝桥杯 ALGO-80 算法训练 整数平均值
  9. cmd cvf war包
  10. 电脑win7语音怎么测试软件,win7话筒怎么测试 win7话筒测试方法【图文】
  11. php导出Excel表格(无插件)
  12. Android NDK 剥离符号信息
  13. 程序员必须 知道的英语单词
  14. 迁移学习在金融行业的应用探索
  15. 2021-04-29 Do not nest ternary expressions
  16. 手机java大作_恐怖大作-暗黑惊怵
  17. 网页/公众号音乐下载
  18. 什么是高防CDN防护
  19. 怎样提问 上 -Leo读提问的智慧 2
  20. CRC32c polynomial

热门文章

  1. 贴吧引流效果怎么样?当机会来了你在做什么?
  2. windows:QuickLook实现文件预览
  3. Java校招面试,项目怎么聊
  4. 记vue-pdf踩坑过程
  5. 约瑟夫环问题(Josephus)
  6. python编程:判断输入的边长能否构成三角形 如果能则计算出三角形的周长和面积
  7. 微信支付V3 生成平台证书
  8. 安踏官网首页html css,发布商品.html · peirenlei/layuiadmin-templete - Gitee.com
  9. CPS平台License完稿
  10. 2021年西式面点师(中级)考试及西式面点师(中级)考试试卷