当前位置:首页 » 网页前端 » 前端模块化理解
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

前端模块化理解

发布时间: 2022-08-28 06:35:21

‘壹’ 红河电脑培训学校告诉你web前端编程模块化开发的好处

模块化编程开发模式相信大家在学习前端编程开发技术的时候应该有接触和了解过。今天就一起来分析一下,web前端模块化编程的好处都有哪些。



一、模块化的理解


1.什么是模块?


将一个复杂的程序依据一定的规则(规范)封装成几个块(文件),并进行组合在一起;


块的内部数据与实现是私有的,只是向外部暴露一些接口(方法)与外部其它模块通信。


2.模块化的进化过程


全局function模式:将不同的功能封装成不同的全局函数;


编码:将不同的功能封装成不同的全局函数;


问题:污染全局命名空间,容易引起命名冲突或数据不安全,而且模块成员之间看不出直接关系。


3.模块化的好处


避免命名冲突(减少命名空间污染)


更好的分离,按需加载


更高复用性


高可维护性


4.引入多个script后出现出现问题


请求过多


先我们要依赖多个模块,那样就会发送多个请求,导致请求过多。


依赖模糊


我们不知道他们的具体依赖关系是什么,也就是说很容易因为不了解他们之间的依赖关系导致加载先后顺序出错。


难以维护


以上两种原因就导致了很难维护,很可能出现牵一发而动全身的情况导致项目出现严重的问题。


‘贰’ 如何学习前端模块化知识

学习前端模块化知识主要集中精力学好以下知识点:
1、学好三驾马车:HTML5 + CSS3 + JavaScrip

2、推荐学习过程:
1)CSS
(1)入门:
Codeademy上的html&css课程——在线交互式编程平台,弄清楚基本概念和基本语法
w3school上的HTML/CSS教程——技术手册式的教程,比较全面,照着实例敲一遍
(2)进阶:
《精通CSS·高级Web标准解决方案》——对CSS有一个比较深入的学习,对核心技术了解。
《HTML5权威指南》——非常全面的书,内容也很新,包含了HTML5+CSS3+JS DOM
(3)实战:
bootstrap框架: bootstrap中文网/《bootstrap实战》——流行的前端框架,注重实用即可
Codeademy上的Web Developer Skills+Projects——通过自己做小页面/小网站来运用所学
(4)提高:
《CSS禅意花园》——提高自己的艺术设计能力,通过实例来学习如何用CSS设计出漂亮的页面
2).Javascript:
(1)入门:
Codeademy上的javascript教程——实例比较多,比较浅,算是基本了解JS
w3school上的JS教程——比较详细的了解下JS的特性
《JavaScript DOM编程艺术》——讲js和DOM的基本知识和运用,了解JS和DOM可以做什么
(2)进阶:
《JavaScript高级程序设计》——JS圣经,比较全面,非常好的一本书,比犀牛书可阅读性强
《JavaScript权威指南》——传说中的犀牛书,好厚好厚的一本书,不适合入门,适合当工具书看
《JavaScript语言精粹》——很薄的一本书,但是可以帮助你快速了解JS的精华部分
(3)实战:
jQuery框架: w3school上的jQuery教程/Codeademy上的jQuery教程——了解Jquery
《jQuery基础教程》——流行的前端框架,注重实用
(4)提高:
《高性能JavaScript》——讲如何提高js性能,以及构建和部署文件到生产环境的最佳实践
《Secrets of the JavaScript Ninja》——jQuery作者写的书,如果你觉得精通JS了再看这本书

‘叁’ 楚雄电脑培训学校告诉你web前端编程模块化开发的好处

模块化编程开发模式相信大家在学习前端编程开发技术的时候应该有接触和了解过。今天楚雄北大青鸟http://www.kmbdqn.cn/就一起来分析一下,web前端模块化编程的好处都有哪些。



一、模块化的理解


1.什么是模块?


将一个复杂的程序依据一定的规则(规范)封装成几个块(文件),并进行组合在一起;


块的内部数据与实现是私有的,只是向外部暴露一些接口(方法)与外部其它模块通信。


2.模块化的进化过程


全局function模式:将不同的功能封装成不同的全局函数;


编码:将不同的功能封装成不同的全局函数;


问题:污染全局命名空间,容易引起命名冲突或数据不安全,而且模块成员之间看不出直接关系。


3.模块化的好处


避免命名冲突(减少命名空间污染)


更好的分离,按需加载


更高复用性


高可维护性


4.引入多个script后出现出现问题


请求过多


先我们要依赖多个模块,那样就会发送多个请求,导致请求过多。


依赖模糊


我们不知道他们的具体依赖关系是什么,也就是说很容易因为不了解他们之间的依赖关系导致加载先后顺序出错。


难以维护


以上两种原因就导致了很难维护,很可能出现牵一发而动全身的情况导致项目出现严重的问题。


‘肆’ 昭通电脑培训学校告诉你web前端编程模块化开发的好处

模块化编程开发模式相信大家在学习前端编程开发技术的时候应该有接触和了解过。今天昭通北大青鸟http://www.kmbdqn.cn/就一起来分析一下,web前端模块化编程的好处都有哪些。



一、模块化的理解


1.什么是模块?


将一个复杂的程序依据一定的规则(规范)封装成几个块(文件),并进行组合在一起;


块的内部数据与实现是私有的,只是向外部暴露一些接口(方法)与外部其它模块通信。


2.模块化的进化过程


全局function模式:将不同的功能封装成不同的全局函数;


编码:将不同的功能封装成不同的全局函数;


问题:污染全局命名空间,容易引起命名冲突或数据不安全,而且模块成员之间看不出直接关系。


3.模块化的好处


避免命名冲突(减少命名空间污染)


更好的分离,按需加载


更高复用性


高可维护性


4.引入多个script后出现出现问题


请求过多


先我们要依赖多个模块,那样就会发送多个请求,导致请求过多。


依赖模糊


我们不知道他们的具体依赖关系是什么,也就是说很容易因为不了解他们之间的依赖关系导致加载先后顺序出错。


难以维护


以上两种原因就导致了很难维护,很可能出现牵一发而动全身的情况导致项目出现严重的问题。


‘伍’ 大理电脑培训学校告诉你web前端编程模块化开发的好处

模块化编程开发模式相信大家在学习前端编程开发技术的时候应该有接触和了解过。今天大理北大青鸟http://www.kmbdqn.cn/就一起来分析一下,web前端模块化编程的好处都有哪些。



一、模块化的理解


1.什么是模块?


将一个复杂的程序依据一定的规则(规范)封装成几个块(文件),并进行组合在一起;


块的内部数据与实现是私有的,只是向外部暴露一些接口(方法)与外部其它模块通信。


2.模块化的进化过程


全局function模式:将不同的功能封装成不同的全局函数;


编码:将不同的功能封装成不同的全局函数;


问题:污染全局命名空间,容易引起命名冲突或数据不安全,而且模块成员之间看不出直接关系。


3.模块化的好处


避免命名冲突(减少命名空间污染)


更好的分离,按需加载


更高复用性


高可维护性


4.引入多个script后出现出现问题


请求过多


先我们要依赖多个模块,那样就会发送多个请求,导致请求过多。


依赖模糊


我们不知道他们的具体依赖关系是什么,也就是说很容易因为不了解他们之间的依赖关系导致加载先后顺序出错。


难以维护


以上两种原因就导致了很难维护,很可能出现牵一发而动全身的情况导致项目出现严重的问题。


‘陆’ 如何理解前端模块化

前端模块化
在JavaScript发展初期就是为了实现简单的页面交互逻辑,寥寥数语即可;如今CPU、浏览器性能得到了极大的提升,很多页面逻辑迁移到了客户端(表单验证等),随着web2.0时代的到来,Ajax技术得到广泛应用,jQuery等前端库层出不穷,前端代码日益膨胀

这时候JavaScript作为嵌入式的脚本语言的定位动摇了,JavaScript却没有为组织代码提供任何明显帮助,甚至没有类的概念,更不用说模块(mole)了,JavaScript极其简单的代码组织规范不足以驾驭如此庞大规模的代码

模块
既然JavaScript不能handle如此大规模的代码,我们可以借鉴一下其它语言是怎么处理大规模程序设计的,在Java中有一个重要带概念——package,逻辑上相关的代码组织到同一个包内,包内是一个相对独立的王国,不用担心命名冲突什么的,那么外部如果使用呢?直接import对应的package即可

import java.util.ArrayList;
遗憾的是JavaScript在设计时定位原因,没有提供类似的功能,开发者需要模拟出类似的功能,来隔离、组织复杂的JavaScript代码,我们称为模块化。

一个模块就是实现特定功能的文件,有了模块,我们就可以更方便地使用别人的代码,想要什么功能,就加载什么模块。模块开发需要遵循一定的规范,各行其是就都乱套了

规范形成的过程是痛苦的,前端的先驱在刀耕火种、茹毛饮血的阶段开始,发展到现在初具规模,简单了解一下这段不凡的历程

函数封装
我们在讲函数的时候提到,函数一个功能就是实现特定逻辑的一组语句打包,而且JavaScript的作用域就是基于函数的,所以把函数作为模块化的第一步是很自然的事情,在一个文件里面编写几个相关函数就是最开始的模块了

function fn1(){
statement
}

function fn2(){
statement
}
这样在需要的以后夹在函数所在文件,调用函数就可以了

这种做法的缺点很明显:污染了全局变量,无法保证不与其他模块发生变量名冲突,而且模块成员之间没什么关系。

对象
为了解决上面问题,对象的写法应运而生,可以把所有的模块成员封装在一个对象中

var myMole = {
var1: 1,

var2: 2,

fn1: function(){

},

fn2: function(){

}
}
这样我们在希望调用模块的时候引用对应文件,然后

myMole.fn2();
这样避免了变量污染,只要保证模块名唯一即可,同时同一模块内的成员也有了关系

看似不错的解决方案,但是也有缺陷,外部可以随意修改内部成员

myModel.var1 = 100;
这样就会产生意外的安全问题

立即执行函数
可以通过立即执行函数,来达到隐藏细节的目的

var myMole = (function(){
var var1 = 1;
var var2 = 2;

function fn1(){

}

function fn2(){

}

return {
fn1: fn1,
fn2: fn2
};
})();
这样在模块外部无法修改我们没有暴露出来的变量、函数

上述做法就是我们模块化的基础,目前,通行的JavaScript模块规范主要有两种:CommonJS和AMD

CommonJS
我们先从CommonJS谈起,因为在网页端没有模块化编程只是页面JavaScript逻辑复杂,但也可以工作下去,在服务器端却一定要有模块,所以虽然JavaScript在web端发展这么多年,第一个流行的模块化规范却由服务器端的JavaScript应用带来,CommonJS规范是由NodeJS发扬光大,这标志着JavaScript模块化编程正式登上舞台。

定义模块
根据CommonJS规范,一个单独的文件就是一个模块。每一个模块都是一个单独的作用域,也就是说,在该模块内部定义的变量,无法被其他模块读取,除非定义为global对象的属性

模块输出:
模块只有一个出口,mole.exports对象,我们需要把模块希望输出的内容放入该对象

加载模块:
加载模块使用require方法,该方法读取一个文件并执行,返回文件内部的mole.exports对象

‘柒’ web前端编程模块化开发的好处

模块化编程开发模式相信大家在学习前端编程开发技术的时候应该有接触和了解过。今天昆明北大青鸟http://www.kmbdqn.cn/就一起来分析一下,web前端模块化编程的好处都有哪些。



一、模块化的理解


1.什么是模块?


将一个复杂的程序依据一定的规则(规范)封装成几个块(文件),并进行组合在一起;


块的内部数据与实现是私有的,只是向外部暴露一些接口(方法)与外部其它模块通信。


2.模块化的进化过程


全局function模式:将不同的功能封装成不同的全局函数;


编码:将不同的功能封装成不同的全局函数;


问题:污染全局命名空间,容易引起命名冲突或数据不安全,而且模块成员之间看不出直接关系。


3.模块化的好处


避免命名冲突(减少命名空间污染)


更好的分离,按需加载


更高复用性


高可维护性


4.引入多个script后出现出现问题


请求过多


先我们要依赖多个模块,那样就会发送多个请求,导致请求过多。


依赖模糊


我们不知道他们的具体依赖关系是什么,也就是说很容易因为不了解他们之间的依赖关系导致加载先后顺序出错。


难以维护


以上两种原因就导致了很难维护,很可能出现牵一发而动全身的情况导致项目出现严重的问题。


‘捌’ 丽江电脑培训学校告诉你web前端编程模块化开发的好处

模块化编程开发模式相信大家在学习前端编程开发技术的时候应该有接触和了解过。今天丽江北大青鸟http://www.kmbdqn.cn/就一起来分析一下,web前端模块化编程的好处都有哪些。



一、模块化的理解


1.什么是模块?


将一个复杂的程序依据一定的规则(规范)封装成几个块(文件),并进行组合在一起;


块的内部数据与实现是私有的,只是向外部暴露一些接口(方法)与外部其它模块通信。


2.模块化的进化过程


全局function模式:将不同的功能封装成不同的全局函数;


编码:将不同的功能封装成不同的全局函数;


问题:污染全局命名空间,容易引起命名冲突或数据不安全,而且模块成员之间看不出直接关系。


3.模块化的好处


避免命名冲突(减少命名空间污染)


更好的分离,按需加载


更高复用性


高可维护性


4.引入多个script后出现出现问题


请求过多


先我们要依赖多个模块,那样就会发送多个请求,导致请求过多。


依赖模糊


我们不知道他们的具体依赖关系是什么,也就是说很容易因为不了解他们之间的依赖关系导致加载先后顺序出错。


难以维护


以上两种原因就导致了很难维护,很可能出现牵一发而动全身的情况导致项目出现严重的问题。