博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MooTools源代码导读
阅读量:7026 次
发布时间:2019-06-28

本文共 2429 字,大约阅读时间需要 8 分钟。

hot3.png

1. mootools模块

1.1. 模块结构

/Source    |--Browser        |--Browser.js    |--Class        |--Class.js        |--Class.Extras.js    |--Core        |--Core.js    |--Element        |--Element.js        |--Element.Style.js        |--Element.Dimensions.js        |--Element.Event.js        |--Element.Delegation.js    |--Fx        |--Fx.js        |--Fx.CSS.js        |--Fx.Morph.js        |--Fx.Transitions.js        |--Fx.Tween.js    |--Request        |--Request.js        |--Request.HTML.js        |--Request.JSON.js    |--Slick        |--Slick.Finder.js        |--Slick.Parser.js    |--Types        |--Array.js        |--DOMEvent.js        |--Function.js        |--Number.js        |--Object.js        |--String.js    |--Utilities        |--Cookie.js        |--DOMReady.js        |--JSON.js

1.2. 模块功能

  • Core:MooTools框架中一些通用的函数,另外在这个模块内,会对原生的Javascript对象,比如Function等做一些拓展。常用的一些拓展框架对象的方法比如:overloadSetter,overloadGetter,implement,extend等都是在这个模块里定义的。
  • Types: 拓展Javascript原生对象:Function Array String Event Number。
  • Browser: 浏览器UA嗅探以及操作系统平台监测
  • Class: 定义了Class构造函数,实现了Javascript的类型系统,是MooTools框架的基础。
  • Slick: CSS选择器引擎。
  • Element: 拓展原生的DOM基类:Element,添加了许多新的api。
  • Fx: Javascript animation的实现。
  • Request: AJAX实现。
  • Utilities: 实现一些通用的工具类,比如Cookie,提供了cookie读写功能。

2. mootools编译

MooTools选择使用grunt作为项目构建工具,其所有的grunt配置均放在了Tests\gruntfile-options.js。

Javascript模块之间必然会有依赖的关系,mootools通过使用了YAML格式的包配置文件来搞定这个问题,我们可以在根目录下的package.yml发现这些依赖关系:

sources:  - "Source/Core/Core.js"  - "Source/Types/Array.js"  - "Source/Types/String.js"  - "Source/Types/Number.js"  - "Source/Types/Function.js"  - "Source/Types/Object.js"  - "Source/Types/DOMEvent.js"  - "Source/Browser/Browser.js"  - "Source/Class/Class.js"  - "Source/Class/Class.Extras.js"  - "Source/Slick/Slick.Parser.js"  - "Source/Slick/Slick.Finder.js"  - "Source/Element/Element.js"  - "Source/Element/Element.Style.js"  - "Source/Element/Element.Event.js"  - "Source/Element/Element.Delegation.js"  - "Source/Element/Element.Dimensions.js"  - "Source/Fx/Fx.js"  - "Source/Fx/Fx.CSS.js"  - "Source/Fx/Fx.Tween.js"  - "Source/Fx/Fx.Morph.js"  - "Source/Fx/Fx.Transitions.js"  - "Source/Request/Request.js"  - "Source/Request/Request.HTML.js"  - "Source/Request/Request.JSON.js"  - "Source/Utilities/Cookie.js"  - "Source/Utilities/JSON.js"  - "Source/Utilities/DOMReady.js"

默认情况下,grunt会打包所有的Javascript源代码,并且运行单元测试,如果你只想要打包和压缩Javascript,那么你需要在Gruntfile.js里自定义任务:

转载于:https://my.oschina.net/knightuniverse/blog/290230

你可能感兴趣的文章
ANT下载和配置
查看>>
ubuntu 步步为营之uclinux编译和移植(完整版)
查看>>
【踩坑经历】一次Asp.NET小网站部署踩坑和解决经历
查看>>
Lintcode: Partition Array
查看>>
Fiddler_解决Fiddler查看Post参数中文乱码的问题
查看>>
让小区运营再智能一点,EasyRadius正式向WayOs用户提供到期弹出式提示充值页面...
查看>>
sudo 之后 unable to resolve host的问题解决办法
查看>>
C++ VC实现对话框窗口任意分割
查看>>
利用模拟退火提高Kmeans的聚类精度
查看>>
[转载]typedef struct和struct的区别
查看>>
poj_2352 Treap
查看>>
TDBXCommand TDBXReader
查看>>
mysql导出查询结果到文档
查看>>
记录-UEFI启动的预装WIN8的笔记本里引导linux双系统
查看>>
SQL Server 性能优化3 该指数(Index)保养
查看>>
WorldWind源码剖析系列:BMNG类构造函数深入分析
查看>>
Android 高手进阶之自定义View,自定义属性(带进度的圆形进度条)
查看>>
那些PHP中没有全称的简写
查看>>
【elasticsearch】python下的使用
查看>>
Swift3.0语言教程使用指针创建和初始化字符串
查看>>