学习YUI3有一段时间,并且应用在了一些项目的前端开发中,感觉还是蛮不错的,所以决定开始记录下YUI3的学习历程和个人经验。
YUI3在前身YUI2基础上进行了大量的重新设计,并不只是简单的版本升级。YUI3强调代码重用,将功能做了级别划分和颗粒化的设计。在概念上抽象出 核心、工具、和组件类,分别放在不同的目录结构中,需要的时候自行去引用。为动态加载的框架设计做铺垫。
YUI 3重点是代码的组织和结构。以下是结构图。
YUI3在结构上分为四大类:
种子:该模块是YUI3的单一核心,页面都必须包含该模块,该模块提供加载功能,所以可以堪称是YUI的一个种子。在YUI3中扮演引导层的作用,通过在页面引入种子相关文件,调用YUI().use()方法可以安全快速的加载YUI3核心类和组件类。
包含YUI Base、Get和Loader模块。
核心:核心模块为YUI3下游组件提供通用依赖。该模块包括OOP模块(提供对象继承机制,DOM等绝大多数模块直接或间接依赖OOP)、Dom模块(提供基础的DOM操作与选择类)、Node模块(基于Dom模块,提供文档节点的创建、选择和操作等方法,相比YUI2有了很大的精简)、Event模块(提供屏蔽浏览器差异的事件注册和响应机制,同时提供高级自定义事件的功能)
组件框架:组件框架基于YUI核心框架。从下到上依次基于Attribute、Base、Widget模块组成;同时提供Plugin模块实现灵活扩展。组件框架是建立和扩展组件的基础。
组件:YUI3提供的高度模块化可复用的组件,根据程序按需引入相关模块即可。YUI3目前提供了Animation、Drag and Drop、IO、Cookies、JSON 等基础组件模块。
接下来总结一下YUI3的部分特点:
1,动态按需加载
YUI3种子中的Get、Loader模块是动态按需加载的基础,YUI3框架通过良好的结构组织,可以根据程序引入的所需模块名称自动计算依赖模块,实现按需加载;YUI3动态加载的优势:
1)将js文件写入script标签,每一个标签都会占用一个http请求(即使是304.),而动态加载的文件缓存后则不必发起真实的http请求。提高了框架的性能。
2) 动态加载可以避免开发人员额外关注js文件之间的依赖和排序及重复问题。 引入的时候只需要引入需要模块的名称即可,依赖关系不需要花费精力处理。
3) 动态加载利于页面代码语义化,只需要关心 ‘需要什么’。
2,细粒度化设计
YUI3对每个模块都进行了更细粒度的划分。比如,dom模块,划分为了 base,screen,style,selector-css2,selector-css3,selector-native等几个小模块,对于我们控制页面的载入的数据量有很大帮助。
下图是YUI3各个细粒度模块的列表和大小。
3,安全沙箱
页面的每一个YUI实例能够被自包含、保护和限制(YUI().use())。这种和其他YUI实例的分离,能够配合你的特殊函数需求,并且能让不同的YUI 版本更好的运行在一起。在很大程度上方便了不同开发者对同一页面的并行开发。
这里YUI().use(”,function(Y){…})就是一个安全沙箱,可以确保这里面的Y是纯天然无污染的,Y实例里有什么功能完全取决于use里传进的模块名称,function(Y){}里面的程序跟外界是隔离的,在里面创建的变量(除了全局变量)以及对YUI的添加修改都不会影响到同个页面上其他人写的程序。
YUI3学习路线
目前关于YUI3的中文资料并不多,也未发现一本介绍YUI3的书籍。所以目前最全的文档就只有yahoo 的官方YUI3介绍、API和examples(http://developer.yahoo.com/yui/3/)。根据网友的学习经验,学习路线最好是依据官方说明的顺序学习(YUI3核心(YUI Global Object\Node\Event)->组件框架->组件);循序渐进,逐步了解YUI组织结构及使用方法。
hello YUI3 demo
首先下载YUI3开发包(在http://developer.yahoo.com/yui/3/ 选择Download full developer kit,包含YUI3代码、api和例子)。解压后拷贝build文件夹里的yui3文件夹到自己的工程中。然后在页面引入yui3-min.js。
<script type="text/javascript" src="build/yui3/yui/yui-min.js"></script>
之后嵌入脚本,验证YUI3是否调用成功
YUI({filter:debug}).use('*',function(Y){ alert('hello YUI3'); });
相关推荐
本教程将带你入门YUI3的基础知识。 **模块化设计** YUI3的核心理念是模块化,这意味着你可以根据需要只加载所需的组件,从而降低页面加载时间和资源消耗。例如,`yui-min.js`就是YUI3的最小核心模块,它包含了YUI...
本教程将深入介绍YUI的基础知识和关键特性,帮助开发者快速入门。 首先,YUI提供了一系列强大的DOM操作工具,例如`YAHOO.util.Dom.get`用于通过ID查找页面元素,类似于`document.getElementById`。`YAHOO.util.Dom....
在《学习YUI.Ext基础第一天》这篇文章中,作者回顾了过去对于Web开发技术的看法与实践经验,特别是关于JavaScript及其在构建现代Web应用中的作用。文章通过两个帖子的摘录,深入探讨了JavaScript的重要性以及它在...
### ExtJS 入门知识点详解 #### 一、ExtJS 是什么? ExtJS是一个功能强大的JavaScript框架,专门设计用于在客户端构建丰富的Web应用程序界面。它不仅支持开发RIA(Rich Internet Applications,即富互联网应用程序...
ExtJS 入门学习 ExtJS 是一个 JavaScript 框架,用于在客户端创建丰富多彩的 Web 应用程序界面。ExtJS 可以用来开发 RIA(-rich internet application),也即富客户端的 AJAX 应用。ExtJS 最开始基于 YUI 技术,由...
《Ext 入门学习》 ExtJS 是一款强大的JavaScript框架,专为构建功能丰富的Web应用程序界面而设计。它支持RIA(Rich Internet Applications)的开发,利用AJAX技术实现富客户端体验。由Jack Slocum开发,最初基于YUI...
1. **学习曲线**:尽管使用Java降低了入门难度,但GWT的API和概念可能需要时间去理解。 2. **代码体积**:GWT编译出的JavaScript文件通常较大,可能影响加载速度,尤其是在没有使用代码分割或延迟加载的情况下。 3. ...
【Ext入门学习】 ExtJS是一个JavaScript框架,专为构建具有丰富用户界面的Web应用程序而设计。它最初由Jack Slocum开发,受到了Java Swing等技术的启发,且最初基于Yahoo! User Interface Library (YUI)。ExtJS允许...
### Extjs实用教程入门学习详解 #### 极致解析Extjs框架的核心价值与应用场景 **Extjs**,作为一款杰出的Ajax框架,以其强大的功能和灵活性,在Web开发领域占据了一席之地。它不仅能够帮助开发者构建出具备华丽...
- **与其他JavaScript库的对比**:与Prototype、YUI、Dojo和mooTools等库相比,jQuery不冲突于全局命名空间,学习曲线较平缓。 2. **jQuery开始前的准备** - **jQuery下载**:最新版本为1.4.2,可在官方网站下载...
在描述中提到的“入门模板”,暗示这个压缩包提供了一个基础的框架,可以帮助新手快速上手YUI。这个模板可能包括了HTML结构、基本的样式、以及初始化的JavaScript代码,用于展示如何结合YUI库创建一个博客系统的基本...
UI(YUI)库的一个扩展而诞生的,但后来发展成为一个独立的项目,不再依赖于YUI。EXT因其适合企业级开发,能够实现复杂的Layout布局,以及与backbase等专业级应用相媲美的界面效果而备受推崇。其特色之一是提供了...
User Interface Library)的一个扩展,名为YUI.Ext,但随着时间发展,它成为一个独立的项目,不再依赖YUI。 1. Ext的核心特性 - **复杂布局**:EXT提供了多种布局管理器,如表单布局、列布局、绝对布局等,使得...
ExtJS最初基于YUI技术,并由开发者Jack Slocum设计,借鉴了Java Swing的组件组织方式。 在了解ExtJS时,首先要知道它能做什么。ExtJS允许开发人员动态创建和管理Web组件,轻松操控DOM对象。它提供了大量预定义的...
Ext最初作为YUI(Yahoo User Interface Library)的扩展存在,名为YUI.Ext,随后发展成为一个独立的JavaScript框架,不再依赖于YUI。这一转变标志着Ext成为了一款更为成熟且适用于企业级开发的工具。 **知识点2:...
以下是对ExtJS 入门学习的一些关键知识点的详细解释: 1. **核心改进**: - **框架架构重构**:ExtJS 4 对框架进行了重构,提高了性能和健壮性。 - **测试框架**:全面的跨浏览器测试确保了框架的兼容性和稳定性...
《学习雅虎用户界面库》是一本详细介绍雅虎用户界面库(YUI)的书籍,由Dan Wellman编写,于2008年3月首次出版。本书主要面向Web开发人员和技术爱好者,旨在帮助读者掌握YUI这一强大的JavaScript开发库。通过本书的...