YUI模块是YUI3中的单一核心,所有需要使用YUI3的页面都必须包含该
模块,该模块提供加载功能,可以使用该功能动态加载指定模块,其依
赖模块会被自动加载,所以YUI模块可以看成YUI的一个种子。
YUI模块创建了一个全局对象:YUI,一个页面可以共享一个YUI实例,也
可以使用多个实例。
YUI模块是所有YUI3.x实现的核心基础。所有使用YUI的页面都需要引入YUI模块。只把YUI模块引入后,就可以开始编写YUI代码了。 YUI模块有【加载功能】和【依赖关系分析功能】。这两个功能是YUI实现最核心的功能。你提供所需的YUI模块列表和使用这些模块的代码,在这些代码执行之前,YUI会自动发送一个优化的HTTP请求,加载需要用到的模块和组件。虽然你可能也会使用YUI模块中加载script和css的功能,但是 YUI模块的核心目的是作为一个基础,为更高级的应用提供支持。
YUI模块创建一个全局的YUI对象。这个对象可以被实例化,它被用于创建YUI实例,然后把不同的功能模块绑定到该YUI实例上。一个页面可以共享一个YUI实例,也可以为不同的功能使用不同的YUI实例。
使用YUI Global 对象
为什么使用命名空间
YUI核心
Use方法
模块列表
用YUI.add创建一个自定义的模块
装载器Loader
为什么使用命名空间
1.向后兼容:
2.沙盒技术:
3.版本兼容:
4.更加动态:
5.强大的选择器:
6.事件标准化:
YUI核心
YUI Global Object是一个可实例化的对象,允许你创建任意个你需要的YUI实例。
Component 和Module区别:
1.先从字面意思上理解
Component 是组件
Module 是模型
2.从形态上来看,模块和组件都是相对稳定的代码的一种称呼。
但是从实际的功能范围上来看,组件一般来说是实现某一种功能或者某一个功能的某一个细节的稳定的相对独立的类,而模块则至少有一个组件组成,也就是说模块的覆盖范围要比组件更大一些,它可能有多个组件组成,甚至除了组件之外还有很多相对稳定但并不会提供独立功能的代码一起来构成。
这就是两者的差别。
YUI 3 COMPONENT | MODULE |
---|---|
Array Operations | array |
YUI Core | core |
JavaScript language helper methods | lang |
Periodic execution method | later |
Logging support | log |
Object Operations | object |
Browser Sniffing | ua |
YUI Object | yui |
Dynamic script and css loading | get |
YUI Loader | loader |
Use方法简写:
使用*加载所有的模块:
YUI().use(‘animation’, function(Y) {
// Y.Anim is available
});
静态加载vs动态加载
当检测到缺少依赖文件时,YUI自动试图完成自身加载。当动态加载以来文件时,传给use的回调函数将会异步执行。如果你静态包含所有库(或者通过其他方式之前加载好的),use()方法的回调函数将同步执行。回调函数的目的就是执行是否同步不重要。如果动态加载的,代码立刻追踪use语句将无法访问任何的加载模块。你可以通过设置YUI配置引导bootstrap阻止YUI自动试图获取缺失依赖文件。
用YUI.add创建一个自定义的模块
待完成。。。
装载器Loader
对于Loader,有效的配置选项如下:
lang:首选语言列表,as BCP 47 language tags,对首选项排序。loader使用这个列表来决定选择哪个语言,也可以加载必要的资源包。参考Internationalization模块获得更多信息。
base:base路径
secureBase:The secure base dir (not implemented)
comboBase:
root:
filter:应用于结果urls的过滤器。这个过滤器为所有模块修改默认路径。YUI 库的默认的路径是最小化(压缩后)的版本(例如,event-min.js)。过滤器属性可以是一个预定义的,也可以是自定义的。有效的预定义过滤器是:
DEBUG:选择库的调试版本(例如,event-debug.js)。
RAW:选择库的非压缩版本(例如,event.js)。
例如加了 { filter: ‘raw’ }之后,head里面的js:
不加 filter: ‘raw’ ,加载的都是min版。
你也可以定义一个自定义的过滤器,它必须是一个包含一个查询表达式和一个替换字符串的对象常量:
myFilter:{
‘searchExp’:”-min\\.js”,
‘repalceStr’:”-debug.js”
}
combine:
ignore:永远也不动态载入的模块列表
force:即使已经在当前页面上出现了,也在需要时候加载
insertBefore:插入点,
charset:
jsAttributes:
cssAttributes:
timeout:
context:
modules:配置模块列表,有效的模块配置数据如下:
name:必须的,组件的名字。
type:必须的,组件类型(js or css)
path:
fullpath:
requires:这个组件需要的模块数组
optional:这个组件可选的模块
supersedes:这个组件所代替的模块列表
after:
rollup:
lang:
groups:
Lang
var Y = YUI(); // true, an array literal is an array Y.Lang.isArray([1, 2]); // false, an object literal is not an array Y.Lang.isArray({"one": "two"}); // however, when declared as an array, it is true function() { var a = new Array(); a["one"] = "two"; return Y.Lang.isArray(a); }(); // false, a collection of elements is like an array, but isn't Y.Lang.isArray(document.getElementsByTagName("body")); // true, false is a boolean Y.Lang.isBoolean(false); // false, 1 and the string "true" are not booleans Y.Lang.isBoolean(1); Y.Lang.isBoolean("true"); // null is null, but false, undefined and "" are not Y.Lang.isNull(null); // true Y.Lang.isNull(undefined); // false Y.Lang.isNull(""); // false // a function is a function, but an object is not Y.Lang.isFunction(function(){}); // true Y.Lang.isFunction({foo: "bar"}); // false // true, ints and floats are numbers Y.Lang.isNumber(0); Y.Lang.isNumber(123.123); // false, strings that can be cast to numbers aren't really numbers Y.Lang.isNumber("123.123"); // false, undefined numbers and infinity are not numbers we want to use Y.Lang.isNumber(1/0); // true, objects, functions, and arrays are objects Y.Lang.isObject({}); Y.Lang.isObject(function(){}); Y.Lang.isObject([1,2]); // false, primitives are not objects Y.Lang.isObject(1); Y.Lang.isObject(true); Y.Lang.isObject("{}"); // strings Y.Lang.isString("{}"); // true Y.Lang.isString({foo: "bar"}); // false Y.Lang.isString(123); // false Y.Lang.isString(true); // false // undefined is undefined, but null and false are not Y.Lang.isUndefined(undefined); // true Y.Lang.isUndefined(false); // false Y.Lang.isUndefined(null); // false
今天的文章YUI:globle object分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/27772.html