




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
前端课程大纲JS模块化第1章:模块化入门1.1. 理解什么是模块/模块化1.1.1 模块1) 将一个复杂的程序依据一定的规则(规范)封装成几个块(文件), 并进行组合在一起2) 这些拆分的文件就是模块,模块内部数据/实现是私有的, 只是向外部暴露一些接口(方法)与外部其它模块通信1.1.2模块化的进化史1.1.3 什么是模块化当开发的项目是遵循模块化规范的项目,那么这个项目就是模块化的项目1.2为什么要模块化?1) 部署简单2) 降低复杂度,提高解耦性3) 避免命名冲突(减少命名空间污染)4) 更好的分离, 按需加载5) 更高复用性,高可维护性1.3 模块化概念带来的问题1) 请求过多2) 依赖模糊3) 难以维护第2章:模块化规范前言:一个大的项目必定会使用模块化,使用模块化就会使用相应的模块化规范,现在比较流行的模块化规范有以下几种:CommonJS, AMD, ES6, CMD2.1. CommonJS2.1.1 规范1) /wiki/Modules/1.12) 每个文件都可当作一个模块3) 在服务器端: 模块的加载是运行时同步加载的4) 在浏览器端: 模块需要提前编译打包处理2.1.2 基本语法暴露模块 引入模块module.exports = value第三方模块:require(xxx),xxx为模块名exports.xxx = value自定义模块:require(xxx), xxx为模块文件路径2.1.3 实现服务器端浏览器端Node.js/Browserify(CommonJs的打包工具)/Node.js运行时动态加载模块(同步)Browserify是在转译(编译)时就会加载打包(合并)require的模块2.2. AMD2.2.1. 规范1) Asynchronous Module Definition(异步模块定义)2) /amdjs/amdjs-api/wiki/AMD3) 专门用于浏览器端, 模块的加载是异步的 2.2.2. 基本语法1) 定义暴露模块/定义没有依赖的模块define(function()return 模块)表 1没有依赖的模块/定义有依赖的模块define(module1, module2, function(m1, m2)return 模块)表 2有依赖的模块2) 引入使用模块require(module1, module2, function(m1, m2)使用m1/m2)表 3注意显示声明依赖注入2.2.3 实现1) Require.js2) /3) /blog/2012/11/require_js.html2.3 CMD2.3.1. 规范1) Common Module Definition(通用模块定义)2) /seajs/seajs/issues/2423) 专门用于浏览器端, 模块的加载是异步的 4) 模块使用时才会加载执行2.3.2. 基本语法1) 定义暴露模块/定义没有依赖的模块define(function(require, exports, module)exports.xxx = valuemodule.exports = value)表 4没有依赖的模块/定义有依赖的模块define(function(require, exports, module)/引入依赖模块(同步)var module2 = require(./module2)/引入依赖模块(异步) require.async(./module3, function (m3) )/暴露模块exports.xxx = value)表 5有依赖的模块2) 引入使用模块define(function (require) var m1 = require(./module1)var m4 = require(./module4)m1.show()m4.show()表 6注意当前模块不需要暴露的时候就只需要写require2.3.3 实现1)Sea.js2) /sp/seajs/2.4 ES62.4.1 规范1) /#docs/module2) 依赖模块需要编译打包处理2.4.2基本语法1) 导出模块: export2) 引入模块: import2.4.3 实现1) 使用Babel将ES6编译为ES5代码: babel 源文件路径 -d 编译后文件路径2) 使用Browserify编译打包js browserify 源文件路径/源文件 -o 编译后文件路径/文件第3章:扩展阅读1) /seajs/seajs/issues/588(前端模块化开发那点历史)2) /blog/2215317(CommonJS,AMD,CMD区别)3) /question/20351507/answer/14859415(AMD和CMD 的区别)4) http:/www.rua
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025私人小额借款合同模板
- 海南生态植物墙施工方案
- 外墙装饰马赛克施工方案
- 锁扣式钢管桩施工方案
- 聊城光伏施工方案设计
- 2025年租赁合同模板
- 加装闸阀施工方案怎么写
- 河北足球场围栏施工方案
- 2025雇佣合同协议书范本
- 忻州家装电地暖施工方案
- 境外信托合同范本
- 2024届高考二元思辨作文写作指导课件
- 数据治理的数据治理组织与流程
- (高清版)TDT 1055-2019 第三次全国国土调查技术规程
- 个人施工安全免责简单协议书(通用)带详尽条款
- 变压器市场需求分析报告
- 电梯结构与原理-第2版-全套课件
- SWITCH塞尔达传说旷野之息-1.6金手指127项修改使用说明教程
- 128个护理诊断和措施大全
- 蒋介石-教学讲解课件
- 尿培养标本的留取规范及临床意义课件
评论
0/150
提交评论