前端模块化

js模块提供的三种规范

1.commen.js 规范 代表就是node.js,适合后台开发,因为是同步的,服务器的运行比较快,等待时间不长,commen.js 不适合用于前端,前端的客户是浏览器,浏览器追求的是异步加载,浏览器不能等待太长时间

2.前端模块的规范是 amd规范 ,代表就是requirejs,它是异步加载的,很多前端框架都是用的amd规范,比如jquery,angular等

3.第三个模块化规范是es6

模块化操作

1.commonjs的规范

  所有的模块化都是两个方向,暴露模块接口和引入模块

  module.exports={} 暴露的是一个叫 exports 的对象

  require()引入一个模块

  这是后台的规范,在node.js 环境可以直接运行,但是在客户端不能直接运行,需要对文件打包编译(打包编译的工具有 webpack gulp)

2.拓展

  var a

  var a 就是声明一个变量a ,就是浏览器往window 上添加的一个属性 a

3.前端模块

  自定义前端模块

  案例分析:定义一个a1模块,没有任何的依赖,没有任何的第三方模块,再定义一个 b1模块,b1 模块依赖a1 模块,定义一个主文件 index.js(主文件的名字也不一定非要叫index,看自己需求而定),main.js 依赖 b1.js 模块,看以下图解

  这是a1.js 模块

     

  这是 b1.js 模块,此模块依赖a.js 模块

  

  index.js 依赖的 b1.js 的文件

  

  html文件的内容

  

注意事项:

  依赖关系千万不能出错,这种请求是不需要第三方的插件,但是有一定的缺点,会发送多次请求,依赖关系不能放错顺序

前端模块化规范 amd

1.amd 是前端模块化的一种规范,全称 async module function 异步模块加载机制,所以需要按照这个规范去定义模块和模块的使用

2.require 提供了一个全局的方法 叫define()用来定义模块

  定义的模块分两种:(1)不依赖其它模块(2)依赖其它模块

  不依赖其它模块

  

  然后再定义一个有依赖的模块,此模块依赖xiaohe模块和jquery'模块(jquery的参数比较特殊,要写成$,这是要求)

  

  这些模块和依赖的模块也都完成了,那如何使用那?
  在主文件中分两部分 一部分是 配置模块,一部分是 使用模块

  

 

原文地址:https://www.cnblogs.com/panghexin/p/11134379.html