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

做网站难学吗/百度平台营销

做网站难学吗,百度平台营销,网页设计与制作课程的建设历程,在网站做电子画册JS模块化 模块化的理解 什么是模块? 将一个复杂的程序依据一定的规则(规范)封装成几个块(文件), 并进行组合在一起块的内部数据/实现是私有的, 只是向外部暴露一些接口(方法)与外部其它模块通信 一个模块的组成 数据—>内部的属性操作数据的行为—>内部的函数 模块化 …

JS模块化

模块化的理解

  • 什么是模块?
    • 将一个复杂的程序依据一定的规则(规范)封装成几个块(文件), 并进行组合在一起
    • 块的内部数据/实现是私有的, 只是向外部暴露一些接口(方法)与外部其它模块通信
  • 一个模块的组成
    • 数据—>内部的属性
    • 操作数据的行为—>内部的函数
  • 模块化
    • 编码时是按照模块一个一个编码的, 整个项目就是一个模块化的项目

模块化的进化过程

  • 全局function模式 :
    • 编码: 全局变量/函数
    • 问题: 污染全局命名空间, 容易引起命名冲突/数据不安全
  • namespace模式 :
    • 编码: 将数据/行为封装到对象中
    • 解决: 命名冲突(减少了全局变量)
    • 问题: 数据不安全(外部可以直接修改模块内部的数据)
  • IIFE模式/增强
    • IIFE : 立即调用函数表达式—>匿名函数自调用
    • 编码: 将数据和行为封装到一个函数内部, 通过给window添加属性来向外暴露接口
    • 引入依赖: 通过函数形参来引入依赖模块
      (function(window, module2){var data = 'atguigu.com'function foo() {module2.xxx()console.log('foo()'+data)}function bar() {console.log('bar()'+data)}window.module = {foo}
      })(window, module2)
      
  • 模块化规范
    • CommonJS
      • Node.js : 服务器端
      • Browserify : 浏览器端 也称为js的打包工具
      • 基本语法:
        • 定义暴露模块 : exports
          exports.xxx = value
          module.exports = value
          
        引入模块 : require
        var module = require('模块名/模块相对路径')
        
      • 引入模块发生在什么时候?
        • Node : 运行时, 动态同步引入
        • Browserify : 在运行前对模块进行编译/转译/打包的处理(已经将依赖的模块包含进来了),
          运行的是打包生成的js, 运行时不存在需要再从远程引入依赖模块

AMD : 浏览器端

* require.js
* 基本语法* 定义暴露模块: define([依赖模块名], function(){return 模块对象})* 引入模块: require(['模块1', '模块2', '模块3'], function(m1, m2){//使用模块对象})* 配置: ```require.config({//基本路径baseUrl : 'js/',//标识名称与路径的映射paths : {'模块1' : 'modules/模块1','模块2' : 'modules/模块2','angular' : 'libs/angular','angular-messages' : 'libs/angular-messages'},//非AMD的模块shim : {'angular' : {exports : 'angular'},'angular-messages' : {exports : 'angular-messages',deps : ['angular']}}})```

CMD : 浏览器端

* sea.js
* 基本语法* 定义暴露模块: ```define(function(require, module, exports){通过require引入依赖模块通过module/exports来暴露模块exports.xxx = value})```* 使用模块seajs.use(['模块1', '模块2'])

ES6

* ES6内置了模块化的实现
* 基本语法* 定义暴露模块 : export* 暴露一个对象: ```export default 对象```* 暴露多个: ```export var xxx = value1export let yyy = value2var xxx = value1let yyy = value2export {xxx, yyy}```* 引入使用模块 : import* default模块:```import xxx  from '模块路径/模块名'```* 其它模块```import {xxx, yyy} from '模块路径/模块名'import * as module1 from '模块路径/模块名'```
* 问题: 所有浏览器还不能直接识别ES6模块化的语法  
* 解决:* 使用Babel将ES6--->ES5(使用了CommonJS) ----浏览器还不能直接支行* 使用Browserify--->打包处理----浏览器可以运行
http://www.jmfq.cn/news/5062393.html

相关文章:

  • 长兴县住房和城乡建设局 网站/百度排名优化软件
  • 网页设计代码不能运行/seo排名优化网站
  • 顺的做网站便宜吗/企点客服
  • java网站开发模式有哪些/腾讯广告推广怎么做
  • 青海做网站好的公司/网站怎么快速收录
  • 西安做网站价格/太原网站关键词排名
  • 深圳平面设计公司招聘/杭州百度快照优化排名推广
  • 东莞手机网站建设/制作网站
  • 网站建设 h5/seo优化排名软件
  • wordpress 新编辑器/河南网站优化
  • 定制开发小程序价格/广州专业seo公司
  • dnf卖飞机的网站怎么做的/制作公司网站
  • 太原汽车网站建设/aso优化师主要是干嘛的
  • 网站的优化用什么软件/推广普通话手抄报内容大全
  • 简洁企业网站模板/厦门seo优化
  • 长春网站seo哪家好/深圳疫情最新消息
  • 网站单页制作/河北企业网站建设
  • 政府网站建设相关评论文章/市场调研报告包括哪些内容
  • fotor网站做兼职靠谱吗/公司网站制作
  • 设计网名昵称/长尾词优化外包
  • 网站被收录的过程/如何分步骤开展seo工作
  • 国内做网站建设知名的公司/网页设计欣赏
  • 响应式网站的登录设置/企业网站开发
  • 苹果手机可以看的网站大全/百度企业推广
  • 做俄罗斯外贸的网站/专业制作网站的公司哪家好
  • shopify建站教程/怎样做网络推广营销
  • 携程的网站建设/中央网站seo
  • 淘宝网站怎么做适配/网络营销整合推广
  • 哪里网站用vue.js做的/seo服务深圳
  • 学校网站首页设计/百度联盟官网