博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
学习 Sea.js 笔记(一)
阅读量:5903 次
发布时间:2019-06-19

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

hot3.png

为学习某开源项目, 里面使用了 sea.js, 为此而学习, 网址是:

模块化的价值 (解决什么问题):

命名冲突问题. 命名空间可缓解冲突, 但太长难记忆. 如何优雅地解决?

烦琐的文件依赖: 当项目越来越复杂, 文件依赖也快速增长. 如何优雅地解决?

前端开发的两个经典问题: 命名冲突, 文件依赖.

== 使用 Sea.js 解决 ==

需要遵守 CMD(Common Module Definition)模块定义规范.

一个文件就是一个模块. 如:

define(function(require, exports) {

   var other = require('path-to-other-js');
   exports.func1 = function ... body;
   exports.func2 = etc...
});

通过 require 获得(其它模块)通过 exports 暴露的接口. 可认为是扩展出了一个关键字(by sea.js).

通过 exports 对象向外提供接口.

通过 require (仿关键字) 类似于 c #include, java,python import 等.

例子2:

seajs.use('some-thing', function(A-object) {

   A-object.foo(...);
}

需要做: 首先在页面引入 sea.js, 其它地方想使用某个模块, 则使用 seajs.use() 方法.

于是:

1. 通过 exports 暴露接口, 不需要依赖命名空间了.
2. 通过 require 引入依赖(模块), 开发者不用关心太多了...

其它好处:

1. 模块版本管理;
2. 提高可维护性: sea.js 提供 nocache, debug 等辅助插件
3. 前端性能优化: 模块是异步加载的. 还提供 combo, flush 等插件.
4. 跨环境共享模块: CMD 与 node.js 模块规范接近, 方便与server端 js 共享.

前端模块化构建两大类:

1. 大教堂模式. (Dojo,YUI3,KISSY...)
2. 集市模式. (jQuery,RequireJS,Sea.js ...)

长远来看, 小而美更具备宽容性和竞争力, 更能形成有活力的生态圈.

 

 

转载于:https://my.oschina.net/u/232554/blog/528752

你可能感兴趣的文章
小蚂蚁学习APP接口开发(1)—— json方式封装通信接口
查看>>
我的友情链接
查看>>
CDN相关
查看>>
Tomcat的设置4——Tomcat的体系结构与设置基于端口号的虚拟主机
查看>>
三种判断端口存活的方法和链接200的判断方法
查看>>
我的友情链接
查看>>
ftp协议基础
查看>>
顺时针打印矩阵
查看>>
访问共享经常中断
查看>>
人生的交易
查看>>
MySql
查看>>
算法分析与设计——贪心法实验报告
查看>>
js时间戳与日期格式的相互转换
查看>>
POJ - 1062 昂贵的聘礼(Dijkstra)
查看>>
Java多态和动态绑定是如何实现的
查看>>
sql server 下载安装标记
查看>>
Android学习6—单元测试的使用
查看>>
js运算符(运算符的结合性)
查看>>
最长上升子序列问题
查看>>
C#中的析构函数
查看>>