前端模块化js

一.前端模块化
 js模块化提供了三种规范
   1.commonjs规范  表明就是nodejs  适合后台开发  由于是同步的  服务器的运行比较快等待时间不长
      commonjs不适合用于前端  前端的客户端是预览器  预览器追求异步加载 预览器不能等太长时间
   2.前端模块的规范是Amd规范,表明就是requirejs 他是异步的,
      不少前端框架都是用的amd规范好比jquery,angular等
   3.第三个模块化的规范是es6html

二.模块化的操做前端

  1.commonjs的操做
      1.全部的模块化都是两个方向,暴露接口和引入模块
      2.module.exports={} 暴露的是一个叫exports的对象
      3.require()  引入一个模块
      4.这是后台的  在nodejs环境能够直接运行,可是在客户端不能直接运行,
         须要打包解析, webpack gulp
   扩展
      var a;
      var a 就是声明一个变量a,就是预览器往window上添加一个属性a  node

 

  

  前端模块jquery

    不借鉴模块自定义模块webpack

    主文件的名字  app.js  main.js  index.js  的操做es6

    避免函数的命名冲突,采用自调用函数web

    自调用函数执行时,会造成一个私有的做用域,对内部的变量进行保护的做用;gulp

    暴露模块,须要后面的全部 js 文件都能访问这个模块,将该模块注册在 window 下面;前端框架

      图文操做说明:服务器

一.自定义定义

    1.模块1      没有依赖的模块

    

    2. 依赖模块的依赖模块

    

    cai是依赖的模块-------------xiaochou是向外暴露的模块

    3.主文件  index.js

    

    xiaochou是依赖的模块

    4.index.html

     

    注意事项:

         1.依赖关系千万不能出错
         2.这种模块的缺点
         3.会发送屡次请求,依赖关系不能放错顺序。

       依赖前端规范:  requirejs   amd

       amd 是前端的模块化的一种规范  全称为  async module difinition 异步模块加载机制,因此需        要按照规范定义和使用模块

二.define 定义

    require提供了一个全局的方法,叫define()用来定义模块
       定义模块分两种
        1.不依赖其余模块
        2.依赖其余模块

    若是不依赖其余模块,参数就是一个函数,return 暴露接口

      引入模式:对这个模块进行配置    

       在图文操做以前,须要下载 requirejs 插件;

    1. 模块1   不依赖其余模块

      

      暴露接口   xiao

    2.  依赖其余的模块 模块1.js  依赖的模块跟 app.js 的配置模块有关

      

      define 参数1(依赖的模块) 参数2(依赖的jq)

      funtion(回调函数)是咱们暴露出来的属性和方法

    3. 引入模块  index.js

      

      require.config(){}  对模块的配置

      paths:{}  配置的模块路径  (不能带后缀名)

      配置文件中 除了 paths 这个对象外,还有一个比较重要的对象 baseUrl 这个是默认 模块的根目录,若是不指定的话,是以 app.js 为参照物 进行的路径查找,

      引入模块:  yangjie是引入的依赖模块,myang是暴露的接口对象

     4.index.html

       

       scr 是amd规范的文件  data-main 才是咱们引用的文件

相关文章
相关标签/搜索