翼度科技»论坛 编程开发 JavaScript 查看内容

模块化开发

9

主题

9

帖子

27

积分

新手上路

Rank: 1

积分
27
1、模块化的发展过程
  1. var moduleObj = {
  2.     userName: 'zhangsan',
  3.     fn: function () {
  4.         console.log('hello world')
  5.     }
  6. }
复制代码
使用方式
  1. <html>
  2.     <head>      
  3.     </head>
  4.     <body>
  5.         
  6.         
  7.     </body>
  8. </html>
复制代码
立即执行函数的方式
通过立即执行函数的方式为模块提供私有空间
  1. ; (function () {
  2.     var userName = 'lisi';
  3.     function fn1() {
  4.         console.log(userName);
  5.     }
  6.     function fn2() {
  7.         console.log('hello world')
  8.     }
  9.     window.moduleObj = {
  10.         fn1: fn1,
  11.         fn2: fn2
  12.     };
  13. })()
复制代码
2、模块化规范说明

CommonJS它是node.js中提到的一个规范。也就是说我们在写Node.js的时候,必须符合CommonJS的规范。
  1.         CommonJS规范要求
  2.         1、一个文件就是一个模块
  3.         2、 通过module.exports导出成员项
  4.         3、通过require函数加载模块
  5.         4、每个模块都有单独的作用域。
复制代码
AMD(Asynchronous Module Definition),翻译过来就是异步的模块定义规范。
  1. define('moduleA',['jquery','./moduleB'],function($,moduleB){
  2.             return{
  3.                 fn:function(){
  4.                     // $('p')
  5.                 }
  6.             }
  7.         })
  8.         require(['./moduleA'],function(moduleA){
  9.             moduleA.fn();
  10.         })
复制代码
3、ES Module基本使用
  1. 1、自动采用了严格模式
  2. 2、每个es module 都是运行在单独的私有的作用域中
  3. 3、`ES module`通过CORS的方式请求外部的JS模块,如果服务端不支持`CORS`,则会出现跨域的问题。
  4. 4、ES module的script标签会延迟执行脚本,类似于添加了defer.
复制代码
4、导出的注意事项
  1. 1、注意语法的问题
  2. 2、通过export 对成员进行导出操作,导出的是成员的引用
  3. 3、导出的成员是只读的,那么我们导入了以后是不能对成员进行修改的。
复制代码
5、导入的注意事项
  1. 1、import后面的from跟的是导入的文件的路径,并且是一个完整路径。
  2. 2、如果我们这里是执行某个模块,并不需要提取其中的成员
  3. import {} from './module.js'
  4. import './module.js
  5. 3、如果某个模块中导出的成员比较多,同时我们都需要这些导出的模块成员,
  6. import * as m from './module.js'
  7. 4、如果需要进行动态的导入
  8. import('./module.js').then(function(module) {
  9.         console.log(module.)
  10.    })
  11. 5、在进行导出的时候,使用了export 和export default,导入import应该怎样进行处理?
  12. import title, { userName, userAge } from "./module.js";
复制代码
来源:https://www.cnblogs.com/P1Kaj1uu/p/17074531.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具