全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

详谈js模块化规范

1. CommonJS

用于服务端模块化编程,比如nodejs就采用此规范;

一个文件就是一个模块,require方法用来加载模块,该方法读取一个文件并执行,最后返回文件内部的module.exports对象;

require是默认读取.js文件的,所以require(模块名)可以不写后缀;

同步加载,由于服务端加载的模块一般在本地,所以可以这样;但是在客户器端如果一个模块过大就会导致页面“假死”;

module.exports属性表示当前模块对外输出的接口,其他文件加载该模块,实际上就是读取module.exports变量;为了方便也可以用exports,exports指向module.exports;即exports = module.exports = {}

exports.xxx相当于在导出的对象上添加属性,该属性对调用模块可见;

exports =  相当于给exports重新赋值,这样就切断了和module.exports的关联,调用模块就不能访问exports的对象及其属性;

2. AMD

加载模块:require([module], function(module){});

定义模块:define([module], function(module){});module为依赖模块;

require.js(前端模块化管理的工具库)实现js文件的异步加载,避免网页失去响应;管理模块之间的依赖性,便于代码的编写和维护。

依赖前置,尽早的执行模依赖块,执行顺序不一定是先1后2;

加载非规范的模块

require.config({
 baseUrl: "js/lib",
 paths: {
  "jquery": "jquery.min",
   "underscore": "underscore.min",
   "backbone": "backbone.min"
  },
 shim: {
  'underscore':{
   exports: '_'
   },
   'backbone': {
    deps: ['underscore', 'jquery'],
    exports: 'Backbone'
   }
 }
});
// exports值(输出的变量名),表明这个模块外部调用时的名称;deps数组,表明该模块的依赖性

3. CMD

define(function(require, exports, module){
 var a = require('a');
 a.foo();
};

Sea.js

依赖就近,且在真正需要使用依赖模块时才执行该模块,顺序固定;

AMD和CMD最大的区别是对依赖模块的执行时机处理不同,而不是加载的时机或者方式不同,二者皆为异步加载模块;

AMD依赖前置,js可以方便知道依赖模块是谁,立即加载;而CMD就近依赖,需要使用把模块变为字符串解析一遍才知道依赖了那些模块

以上这篇详谈js模块化规范就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# js模块化规范  # 详解Js中的模块化是如何实现的  # Javascript模块化编程详解  # 详解JavaScript模块化开发  # 如何正确理解javascript的模块化  # JavaScript 模块化详解  # 拥抱模块化的JavaScript  # 前端JavaScript模块化解析之ESModule用法示例  # 加载  # 给大家  # 服务端  # 就会  # 可以用  # 一遍  # 才知道  # 希望能  # 就不能  # 这篇  # 过大  # 时才  # 小编  # 大家多多  # 皆为  # 不写  # 便也  # 而不是  # 管理模块  # 变量名 


相关文章: 如何选择高效稳定的ISP建站解决方案?  如何通过FTP空间快速搭建安全高效网站?  建站之星后台密码遗忘如何找回?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  TestNG的testng.xml配置文件怎么写  建站主机助手选型指南:2025年热门推荐与高效部署技巧  微信小程序 input输入框控件详解及实例(多种示例)  建站主机服务器选型指南与性能优化方案解析  如何选择香港主机高效搭建外贸独立站?  专业商城网站制作公司有哪些,pi商城官网是哪个?  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  建站之星安装后如何自定义网站颜色与字体?  c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】  如何选择高效响应式自助建站源码系统?  如何快速搭建高效香港服务器网站?  义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?  如何制作一个表白网站视频,关于勇敢表白的小标题?  如何自定义建站之星模板颜色并下载新样式?  Android自定义listview布局实现上拉加载下拉刷新功能  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  如何解决ASP生成WAP建站中文乱码问题?  宁波自助建站系统如何快速打造专业企业网站?  如何通过NAT技术实现内网高效建站?  如何在IIS中新建站点并解决端口绑定冲突?  如何通过主机屋免费建站教程十分钟搭建网站?  如何配置IIS站点权限与局域网访问?  javascript基本数据类型及类型检测常用方法小结  小型网站制作HTML,*游戏网站怎么搭建?  c# F# 的 MailboxProcessor 和 C# 的 Actor 模型  免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?  网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何通过西部数码建站助手快速创建专业网站?  ,石家庄四十八中学官网?  建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南  制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?  沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?  青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?  如何通过虚拟主机快速完成网站搭建?  沈阳制作网站公司排名,沈阳装饰协会官方网站?  广州建站公司哪家好?十大优质服务商推荐  建站之星如何通过成品分离优化网站效率?  如何使用Golang table-driven基准测试_多组数据测量函数效率  宝塔新建站点报错如何解决?  PHP 500报错的快速解决方法  建站之星展会模版如何一键下载生成?  如何用PHP快速搭建高效网站?分步指南  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  XML的“混合内容”是什么 怎么用DTD或XSD定义  建站主机选哪家性价比最高? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。