当前位置: 首页 > news >正文

台州市建设规划局网站6万州网站制作公司

台州市建设规划局网站6,万州网站制作公司,屯济宁做网站公司,新冠咳嗽一般要咳多少天模块化演变过程 阶段一#xff1a;基于文件的划分模块方式 概念#xff1a;将每个功能和相关数据状态分别放在单独的文件里 约定每一个文件就是一个单独的模块#xff0c;使用每个模块#xff0c;直接调用这个模块的成员 缺点#xff1a;所有的成员都可以在模块外被访问和…模块化演变过程 阶段一基于文件的划分模块方式 概念将每个功能和相关数据状态分别放在单独的文件里 约定每一个文件就是一个单独的模块使用每个模块直接调用这个模块的成员 缺点所有的成员都可以在模块外被访问和修改所有的模块都是直接在全局工作没有【私有空间】 模块多了之后会产生【命名冲突】 无法管理各个模块之间的【依赖关系】阶段二命名空间模式 概念每个模块只暴露一个全局对象所有模块成员都挂载到这个对象上通过将每个模块包裹成一个全局对象的方式实现类似于为每个模块添加【命名空间】的感觉。 var name module-a function method1 () {cosnole.log(name #method1) } function method2 () {cosnole.log(name #method2) }优点减少了命名冲突 缺点所有的成员都可以在模块外被访问和修改所有的模块都是直接在全局工作没有【私有空间】 无法管理各个模块之间的【依赖关系】 var moduleA {name: module-a,method1: function () {console.log(this.name #method1)}, method2: function () {console.log(this.name #method2)} }阶段三IIFE 使用IIFE立即执行表达式为模块提供四有空间对于需要向外暴露的成员挂载到全局对象上的方式实现 优点模块有了私有空间 缺点无法管理各个模块之间的依赖关系。 有了私有成员私有成员只能在模块成员内通过闭包的形式访问 // (function(){})() : 自加载执行该方法 (function () {var name module-afunction method1 () {cosnole.log(name #method1)}function method2 () {cosnole.log(name #method2)}// 将需要向外暴露的成员挂载到全局对象上window.moduleA {method1: method1,method2: method2 } })()阶段四 概念使用IIFE参数作为依赖声明使用 做法在第三阶段的基础上利用立即执行函数的参数传递模块依赖项 优点 使得模块之间的关系变得更加明显 (function ($) {var name module-afunction method1 () {cosnole.log(name #method1)$(body).animate({ margin: 200px})}function method2 () {cosnole.log(name #method2)}// 将需要向外暴露的成员挂载到全局对象上window.moduleA {method1: method1,method2: method2 } })(jQuery)模块化规范总结 CommonJs 是运行在node.js环境下的模块化规范node的机制是在启动时加载模块执行时直接使用模块 一个文件就是一个模块每个模块都有单独的作用域 通过module.export导出通过require函数导入 该模块规范不适合浏览器的原因 浏览器在加载页面是如果需要同步加载所有模块必然导致性能低下所以早期的浏览器没有使用CommonJS规范 AMD 主要用于浏览器端通过define定义通过require导入异步加载模块CMD 主要用于浏览器端通用模范定义规范通过define定义通过require导入同步加载模块ESModule 浏览器和服务器通用用import和export关键字来导入和导出AMD和commonjs是运行时确定这些东西es6的模块化设计思想是尽量的静态化使得编译时就确定模块的依赖关系以及输入输出变量。 ES Module 基本特性 script typemoduleconsole.log(this) // 因为是module类型 所以是undefinedvar foo 100console.log(foo) // 100 /script script typemoduleconsole.log(foo) // 报错 foo没有定义因为每个 ES Module 都是运行在单独的私有作用域中 /script自动采用严格模式不能直接采用this 每个ESM模块都是单独的私有作用域 ESM是通过CORS去请求外部JS模块的 ESM的script标签会延迟执行脚本 导入导出 导入的是模块成员的地址并且是只读的 // 默认导出 var name foo module export default name // 默认导入 import fooName from ./module// 多个导入导出 {}是固定语法并不是数据解构 export const name hello export const age 18 export default const sex 0import sex,{name,age} from ./module// 与commonjs的区别先将模块整体导入为一个对象再从对象中解构出需要的成员 export obj {name, age} const { name, age } require(./module.js)使用方式 1.使用import导入模块路径必须是完整路径路径的./不能省略路径可以是绝对路径和url 2.只加载模块不提取成员 import {} from ./module.js import ./module.js3.用*导出模块所有成员并将其放入一个对象中从对象中提取需要的成员 import * as mod from ./module.js4.动态加载模块:使用import()动态加载一个模块返回一个promise对象等异步加载完成之后会自动加载then指定的回调函数,获取参数 import(./module.js).then(function (module) { console.log(module) })5.导入时直接导出 export { default as Button } from ./button.js export { Avatar } from ./avatar.jsInterview Q 说说对模块化的理解 编程中的模块化,是遵守固定的规则是将程序代码拆分成独立模块的编程方式有两个基本的特征外部特征和内部特征外部特征是指模块跟外部环境联系的接口其余模块的引用和模块的功能。内部特征是指模块内部的环境具有的特点提高了代码的可复用性和易维护性实现按需加载路由通过定义模块之间的依赖和导入导出模式使得代码组织和管理更加的灵活和高效js中存在多种模块化语法和规范commonjs用于服务端通过module.exports导出通过require导入同步加载相当于浅拷贝了一份模块的内容AMD用于浏览器端通过define定义通过require导入异步加载模块CMD主要用于浏览器端通用模范定义规范通过define定义通过require导入同步加载模块ES6浏览器和服务器通用用import和export关键字来导入和导出AMD和commonjs是运行时确定这些东西es6的模块化设计思想是尽量的静态化使得编译时就确定模块的依赖关系以及输入输出变量。commonjs与es6模块化有什么区别 1、CommonJS模块是运行时加载而ES6模块是编译时输出接口2、CommonJS模块的require()是同步加载模块而ES6模块的import命令是异步加载3、CommonJS是对模块的浅拷贝ES6是对模块的引入
http://www.w-s-a.com/news/254798/

相关文章:

  • 西安分类信息网站网站敏感关键词
  • 黑彩网站怎么做建设网站费用分析
  • 网站关键词选取的步骤和方法小程序商城哪家好排行榜
  • 儿童产品网站建设网站建设优化排名推广
  • 做网站的硬件无锡招标网官方网站
  • 做推送好用的网站合肥网站推广培训
  • 网站开发团队简介贵阳双龙区建设局网站
  • 新乡做网站公司哪家好wordpress侧边栏文件
  • 小白建站怎么撤销网站备案
  • 哪个网站做调查问卷赚钱短视频制作神器
  • 上海企业响应式网站建设推荐汕头网络优化排名
  • 怎么建立公司网站平台怎么将网站做成公司官网
  • 培训学校网站怎样快速建设网站模板
  • 建设电子商务网站论文云服务器安装wordpress
  • 做展板好的网站学校的网站开发过程
  • 宁波搭建网站价格西部数码网站正在建设中是什么意思
  • 吉林省建设项目招标网站苏州网络推广定制
  • 网站域名所有权证明引流推广接单
  • 做网站百度百科孟州网站建设
  • 服务网站建设企业广州模板建站系统
  • 怎么做属于自己的免费网站浏览器游戏网址
  • 上海城乡住房建设厅网站西安网站推广慧创科技
  • 做策划网站推广怎么写简历互联网公司手机网站
  • 怎么做宣传网站网站建设采购项目合同书
  • 网站的空间和域名备案做网站要会写什么
  • wap 网站源码企业网站被转做非法用途
  • 下载网站模板怎么使用做物流网站的公司
  • 网站 商城 app 建设建设银行江苏省行网站
  • 广州网站开发建设西安广告公司联系方式
  • 怎么用腾讯云服务器做网站个人网站开发视频