seajs的使用方法个人总结
来源:互联网 发布:网络黄金裴雷和刘宁 编辑:程序博客网 时间:2024/06/05 10:11
seajs的作用:
当你的网站开发越来越复杂的时候,会经常遇到这些问题吗?
冲突
性能
依赖
seajs如何解决?
①引入sea.js的库
②如何变成模块?
define 在模块grunt合并的时候 define里面要多2个参数 一个id ,一个依赖模块的数组
③如何调用模块?
exports
seajs.use
④如何依赖模块?
require https://github.com/seajs/seajs/issues/259 requie还是严格书写约定不能被修改。 (但是自己在rrd上却看到被修改了很疑惑)
深入学习seajs
define
require
seajs.use
seajs.config
alias
preload
debug
模块化历史
ECMAScrpt第六版将正式支持模块语法
nodeJS
commonJS
AMD
requireJS
跟seajs一样,web端模块化
seajs采用cmd规范
=====================个人总结。
/*
* 使用步骤。1,引入seajs 2、定义define模块 3、 模块的调用 seajs.use 4 如何依赖模块(模块之间的依赖) require()* 步骤二:define参数说明 require 请求地址 exports 对外提供接口对象
*define中的三个参数可以都写,可以都不写,可以只有前1个,可以只有前2个
*
*步骤三:seajs.use参数说明 如seajs.use('./js/jq.js',function(ex){ dosomething....}) 有2个参数, 第一个参数是请求的模块地址;第二个参数是回调函数其中回调函数中的参数是模块返回的接口对象
*步骤四:require 例子define(function(require,exports,module){
* var a=require('js/module3.js').a; 当这个require方法引入的是sea模块时候,require执行完后返回的结果就是exports接口对象;
* 上面的例子就是把module3里面暴露的 a属性复制给这个模块 的a ,在本模块就可以直接使用
*});
*
*================
* 注意:在sea.js请求成功以后,请求的默认路径都会是sea.js的路径,
* 特别注意,[ 有些版本 ]加入sea.js的父级或者祖辈父级有名字为‘seajs’的文件夹,那么会以seajs这个文件夹路劲为基础路径
* 如:在index.html使用seajs.use('js/jq.js')中的的jq.js的路劲是在seajs文件夹下面的
* 但是index.html为seajs.use('./js/jq.js')时,jq.js是相对index.html的路径
*/
=====在2.1版本的更新
seajs.config
中,去除 plugins 和 preload 功能。 在内部实现上,plugins 是通过 preload 来实现的。但 preload 严格意义上来说,并不是 Sea.js 需要去承担的职责。去除 preload 后,plugins 的加载也变得简单,直接通过 script 提前引入就好,或者通过 combo 服务与 sea.js 一起加载。去除对循环依赖的支持。目前 Sea.js 是支持循环依赖的,当有死循环时,也会给出适当的提示。但就如 Go 语言设计者所说,支持循环依赖,看起来很 cool,也能在某些场景下给设计带来简化,但从长远上来,支持循环依赖,会给整体增加复杂性,让依赖关系等都变得复杂。从这个角度上,对循环依赖的支持是一种心理上的完美,而非工程上的完美。去除对循环依赖的支持,有两个做法:1)保留循环依赖时的提示功能,这样对代码层面其实不会有太多精简。2)彻底去除,根本不考虑,有死循环时,自然的报错(比如浏览器的提示)。具体怎么做还有纠结。
去除对 data-config / data-main 的支持。 这两个是锦上添花的功能。保留着,看似能带来简洁性,但一定程度上掩盖了内部机制。不如让用户直接通过
seajs.use
去启动加载的好。define(id, fn) 的支持。 2.0 中只支持
define(fn)
和define(id, deps, fn)
,考虑将对define(id, fn)
的支持再加回来。在手写 id 的情况下,这种写法还是蛮方面的。config 中的 alias 改名叫 aliases。 原来的命名是个错误,应该统一用复数形式。这个不一定修改,也许保留这个错误也没问题。
seajs 2.0版本用shim 加载非cmd模块
- seajs的使用方法个人总结
- seajs的使用方法个人总结
- seajs使用方法
- seajs项目构建的总结
- 个人总结checkbox使用方法
- JAVA中sort函数的使用方法的个人总结
- JAVA中sort函数的使用方法的个人总结
- 用grunt构建seajs项目的总结
- Seajs和requireJS的模块化开发总结
- AMD,CMD,CommonJS以及RequireJS和SeaJS的个人感悟
- Seajs 使用总结
- syslog的使用方法个人小结
- syslog的使用方法个人小结
- seajs打包部署工具spm的使用总结
- seajs打包部署工具spm的使用总结
- seajs打包部署工具spm的使用总结
- 个人随笔JQuery tree的seajs.use(['dialog','$', 'dialog.css'], function(Dialog, $) {}
- seaJs学习笔记之seaJs的准备
- EditText的点击事件屏蔽键盘响应
- [8] 算法之路 - 归并排序
- 【Unity3D】Unity GUI的选择与评价
- linux c编程操作数据库(sqlite3应用)
- Android笔记2——通讯录实例注释及分析
- seajs的使用方法个人总结
- centos: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
- JWplayer在iOS上全屏播放音频,无法正常播放(无解)
- SlidingMenu 合成原理分析
- C/C++笔试题(很多)
- 我对策略模式的理解
- windwos sockets实现及其相关函数简介
- (总结)Oracle启动监听报错:The listener supports no services解决
- fedora20 执行 arm-linux-gcc 出现 libz.so.1: cannot open shared object file问题解决方案