11模块化modulr modulr_code JS模块化_第1页
11模块化modulr modulr_code JS模块化_第2页
11模块化modulr modulr_code JS模块化_第3页
11模块化modulr modulr_code JS模块化_第4页
11模块化modulr modulr_code JS模块化_第5页
已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论