正式开始学习前端开发,以前就会写简单的html,js,现在回来一看,内容实在太丰富了,基本要从基础学起。 努力。。。努力。。。

学前端,首先要选个前端框架,VUE,Angular,React,好吧,对于一个初学者来说,有些晕了。

https://www.zhihu.com/question/27791075

只能往头再捋捋,先把相关知识过一遍。查询vue,发现都是说vue要配合webpack来使用,再看一下什么是webpack:

http://www.w2bc.com/Article/50764

基本概念:

webpack是近期最火的一款模块加载器兼打包工具,它能把各种资源,例如JS(含JSX)、coffee、样式(含less/sass)、图片等都作为模块来使用和处理。

webpack 是以 commonJS 的形式来书写脚本滴,但对 AMD/CMD 的支持也很全面,方便旧项目进行代码迁移。

https://www.zhihu.com/question/20351507/answer/14859415

对于依赖的模块,AMD 是提前执行(异步模块定义,requirejs 是实现),CMD (通用模块定义,seajs是实现)是延迟执行,CommonJs是为了服务器端开发的规范(同步的,node.js是实现)

CommonJs

http://zccst.iteye.com/blog/2215317

根据CommonJS规范,一个单独的文件就是一个模块。加载模块使用require方法,该方法读取一个文件并执行,最后返回文件内部的exports对象。 

//require方法默认读取js文件,所以可以省略js后缀 
var test = require('./boobar').foobar; 
test.bar(); 

CommonJS 加载模块是同步的,所以只有加载完成才能执行后面的操作。像Node.js主要用于服务器的编程,加载的模块文件一般都已经存在本地硬盘,所以加载起来比较快,不用考虑异步加载的方式,所以CommonJS规范比较适用。但如果是浏览器环境,要从服务器加载模块,这是就必须采用异步模式。所以就有了 AMD  CMD 解决方案。 

AMD异步加载模块。它的模块支持对象 函数 构造器 字符串 JSON等各种类型的模块。 

适用AMD规范适用define方法定义模块。 

//通过数组引入依赖 ,回调函数通过形参传入依赖

require([module], callback);
require(['clock'],function(clock){
  clock.start();
});

CMD推崇依赖就近,AMD推崇依赖前置。 AMD支持CMD的写法
//AMD 
define(['./a','./b'], function (a, b) { 

    //依赖一开始就写好 
    a.test(); 
    b.test(); 
}); 

//CMD 
define(function (requie, exports, module) { 
     
    //依赖可以就近书写 
    var a = require('./a'); 
    a.test(); 
     
    ... 
    //软依赖 
    if (status) { 
     
        var b = requie('./b'); 
        b.test(); 
    } 
}); 


好了,终于对这些模块化有了一定的了解,更具体的需要去实践中学习了。


里面内容大都是根据网上资料东拼西凑而成,只是为了进一步增强理解,整理到一起,以备回头再看。


Logo

前往低代码交流专区

更多推荐