美文网首页
js模块化

js模块化

作者: kate2020 | 来源:发表于2020-02-17 11:49 被阅读0次

目的:模块相互独立 可重复使用 避免命名冲突和文件依赖
方式:

  1. 命名空间
let module = {
  name: 'likang xie',
  sayName() {
    console.log(this.name);
  }
}
  1. 立即执行函数+闭包: 函数内部有自己的独立作用域 外部只能访问自己暴露的成员 而不能访问私有变量
let module = (function () {
  let privateName = 'private'; // 私有变量
  let privateFn = function () {}; // 私有函数
  
  // 对外暴露的成员
  return {
    name: 'likang xie', // 公有属性
    sayName() { // 公有方法
      console.log(this.name);
    }
  }
})();

// 外部调用
module.sayName(); // likang xie 
  1. commonjs:用于node环境 同步加载模块
// module.js
let name = 'liakng xie';
let sayName = function () {
  console.log(name);
};

module.exports = { name, sayName }

// 或者
exports.sayName = sayName;
// 通过 require 引入依赖
let module = require('./module.js');
module.sayName(); // likang xie
  1. module模块:静态加载(在变异时就能确定依赖关系)
    import()返回一个promise对象 是异步加载
    浏览器支持es6
<script type="module">
  import * as fn from './b.js';
</script>
  1. amd用于浏览器环境 采用异步方式加载模块
define(['module'], function() {
  let name = 'likang xie';

  function sayName() {
    console.log(name);
  }
  
  return { sayName }
})
// 通过 require 引入依赖
require(['module'], function(mod) {
   mod.sayName(); // likang xie
})
  1. webpack打包 思想是一切皆模块css是模块,js是模块,图片是模块。并且提供了一些列模块加载(各种-loader)来编译模块。
  2. umd 通用模块
(function (global, factory) {
    typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
    typeof define === 'function' && define.amd ? define(factory) :
    (global.libName = factory());
}(this, (function () { 'use strict';})));

相关文章

  • 模块化开发

    js模块化开发vue模块化开发

  • Javascript 模块化

    Javascript 模块化发展的历史精读 js 模块化发展直接定义依赖 (1999): 由于当时 js 文件非常...

  • js模块化规范

    title: js模块化date: 2019-01-30 17:49:22tags: js 1.无模块化 缺点:1...

  • js 模块化

    尚硅谷_JS模块化 笔记

  • 06Vue的前端工程化

    Vue的前端工程化 一 模块化规范 1.1模块化规范举例 浏览器端JS模块化规范:AMD,CMD 服务器端JS模块...

  • 模块化开发

    什么是模块化? 模块化就是讲js文件按照功能分离,根据需求引入不同的文件中。源于服务器端。 js模块化方案有AMD...

  • 前端模块化

    在学node.js, 实际上就是基于common.js开发的,所以了解了一下模块化开发。 JS的模块化初衷和所有语...

  • 04-webpack核心基础-ES6模块化

    一、模块化概述 在ES6出现之前,JS不像其他语言拥有“模块化”这一概念,于是为了支持JS模块化我们使用类、立即执...

  • 前端javascript模块化

    JavaScript js 模块化 关于js模块化的理解写法一 写法二 写法三 写发四(不推荐) 写发五 (错误写...

  • 做了这么久的前端开发,听过Css模块化开发么?

    说起前端模块化开发,大部分人可能只会想到js模块化开发吧,网上也确实有各种各样的js模块化方法,但是鲜有谈论Css...

网友评论

      本文标题:js模块化

      本文链接:https://www.haomeiwen.com/subject/qdzvfhtx.html