如何学习前端模块化知识?

如何学习前端模块化知识?,第1张

学习前端模块化知识主要集中精力学好以下知识点:

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了再看这本书

前端如果想做模块化开发,首先需要针对每一种资源(

JavaScript

CSS

、模板等)寻找

一种模块与集成方案,然后需要根据情况的不同选用不同的工具框架拼凑出来。

SeaJS

是一个适用于

Web

浏览器端的模块加载器。使用

SeaJS

,可以更好地组织

JavaScript

代码。

不知道别人怎么做的,我自己现在的做法是,基本通用的功能做成一个

js

文件,

js

html

标签和

style

样式,只需要一个

div

带上

id

调用一下就

ok

了,比如图片上传。而一

些常用但不通用的功能做成一组文件,包括

js

和一定的

html

结构还有一个

css

文件,也可

能还有图片什么的,有时候甚至做成不用调用,直接加载就能用。

至于具体的调用方法,

大概就是

window

定义一个变量,

放入调用的这个功能的

function

初始化一个模块,

并返回这个模块闭包中的一些方法用来 *** 作或者获取和设置一些模块闭包

内的变量。

JavaScript

目前比较拿的出手的,也就是

JavaScript

的模块化,比如

AMD

或者

CMD

等等,分别可以使

RequireJS

SeaJS

去年在研究基于

Backbone

的框架

Marionette

时,想与

Sea.js

结合使用。现在来看这种组合

是完全没有必要的。

Marionette

提供了模块化的组织方案,反而生拉硬扯在一起,冲突得很

难受。其实把

JavaScript

文件一列放在

HTML

中也没什么问题。

究竟使用什么来实现

JavaScript

往往与选择的

JavaScript

框架有关,

Backbone

可以

AMD

也可以

CMD

。选

AngularJS

直接引用就行。

CSS

CSS

模块化应该是两方面的问题——

一是模块必须有一套基础样式。与

JavaScript

相比,

CSS

冲突简直是家常便饭,

Shadow DOM

还没成熟,

原生的

CSS

样式隔离还在路上。

所以必须有一套基础样式来规定这一套模块化组

件的样式。我们可以选

Bootstrap

,如果闲它太重,也可以自己写。

其次,每个组件必须有命名空间,避免组件间样式冲突。如果选择使用

LESS

SASS

等,那

就比较好办,它们的缩进语法避免写很多重复的

CSS

代码。

HTML

模板

如果使用

AngularJS

AngularJS

已经帮您解决了模板模块化的问题,

AngularJS

可以根据模

块代码中的引用加载对应的

HTML

。如果使用

Backbone

,可以选择各种各样的模板引擎,

Mustache

?不过比起

AngularJS

就低端些,我们必须自己处理模板文件,要么通过模块加载

器通过

XHR

请求,然后动态编译;或者将

Mustache

编译成

JS

,在当做模块加载。

图片、字体?

放在使用他们的模块中,该怎么引用就怎么引用。

国际化文件?这些就不多说了,总之,每种文件需要选定一种开发的组织方式。

模块分发

模块采用统一的模式来开发之后,只需选定一种包的分发方式就行了——

Bower

npm

不适

合这样的场景,

npm

的版本管理太过细致了。如果同一个项目中允许出现同一模块的不同

版本,事情就做的太过复杂了。

发布上线

发布上线必须一个以终为始的过程。

如果你不追求网站或者应用的速度,

那就把那些开发文

件直接丢到生产服务器上去吧。别说,我还真见过这样的商用的网站。

如果讲究一些方案,

资源合并成数个文件,

代码线上组合和运行方式完全可以与本地开发不

一样。只需要功能在就行。

JavaScript

代码打成一个文件,或者两个?都行。如果使用

RequireJS

,那

RequireJS

提供了打

包的工具,打包成几个文件,什么粒度,都行。如果是

Sea.js

也有对应的工具。就算文件都

是一个一个列出来,我们也总是可以打出来你想要的文件。

CSS

等等其他资源都是如此,就算开发时各自不同的结构模式,打包时都是可以打的。

至于上线

CDN

,版本号缓存什么的并不在本文的讨论范围之内。

总结

前端模块没有什么特效药。唯一要遵守的原则就是,

比起

Node.js

来讲,每种资源必须要

有一种自己的开发和上线组织方式

Node.js

开发和上线都是一致的)

,开发和上线完全可

以是两种方式,

大可不必人云亦云,

只要适合可以随意组合;

CSS

CSS Scoped Style

正式使

用之前,应该有一套基础样式和沙盒(模块样式命名空间)

每个模块中的

HTML

怎么办,

如果我们使用的框架是

Backbone

注定我们要将

HTML

模板转

换成

JavaScript

模块,或者使用模块加载器的插件来实现。如果我们使用

AngularJS

,那倒是

可以交由

AngularJS

。发布时

Backbone

中的模块使用

AMD

打包,

AngularJS

可以使用

Grunt

内联到页面中。

HTML

模块也没有固定的模式,没有固定的

SDK

来解脱我们。我们只能组合现有的工具!

CSS

就更不用说了,分开写,使用

LESS

SASS

来组织?再一次没有固定的模式没有

SDK

学习前端模块化知识主要集中精力学好以下知识点:HTML + CSS + JavaScrip,HTML和CSS只需要记得就好,但是主要的是多看看JavaScript的知识点,还是得必须的多练,可以多查资料,这些东西可以看书或网上找视频学习。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7090919.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-01
下一篇 2023-04-01

发表评论

登录后才能评论

评论列表(0条)

保存