`
houfeng0923
  • 浏览: 145296 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

YUI3学习(一)---入门

阅读更多

     学习YUI3有一段时间,并且应用在了一些项目的前端开发中,感觉还是蛮不错的,所以决定开始记录下YUI3的学习历程和个人经验。
     YUI3在前身YUI2基础上进行了大量的重新设计,并不只是简单的版本升级。YUI3强调代码重用,将功能做了级别划分和颗粒化的设计。在概念上抽象出 核心、工具、和组件类,分别放在不同的目录结构中,需要的时候自行去引用。为动态加载的框架设计做铺垫。

YUI 3重点是代码的组织和结构。以下是结构图。

 

YUI3在结构上分为四大类:

种子:该模块YUI3的单一核心,页面都必须包含该模块,该模块提供加载功能,所以可以堪称是YUI的一个种子。在YUI3中扮演引导层的作用,通过在页面引入种子相关文件,调用YUI().use()方法可以安全快速的加载YUI3核心类和组件类。

包含YUI BaseGetLoader模块。

核心:核心模块为YUI3下游组件提供通用依赖。该模块包括OOP模块(提供对象继承机制,DOM等绝大多数模块直接或间接依赖OOP)、Dom模块(提供基础的DOM操作与选择类)、Node模块(基于Dom模块,提供文档节点的创建、选择和操作等方法,相比YUI2有了很大的精简)、Event模块(提供屏蔽浏览器差异的事件注册和响应机制,同时提供高级自定义事件的功能)

组件框架组件框架基于YUI核心框架。从下到上依次基于AttributeBaseWidget模块组成;同时提供Plugin模块实现灵活扩展。组件框架是建立和扩展组件的基础。

组件:YUI3提供的高度模块化可复用的组件,根据程序按需引入相关模块即可。YUI3目前提供了AnimationDrag and DropIOCookiesJSON 等基础组件模块。

 

 

接下来总结一下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 Global Object

 

 

  • 大小: 171 KB
  • 大小: 69.8 KB
6
1
分享到:
评论
6 楼 shabumaiev 2012-03-03  
嗯!我是昨天才搞到。搞了几个版本然后集合起来!
现在看的我头大!yui这个全局变量!
LZ,你QQ或者/MSN是什么丫!想请教请教!
5 楼 houfeng0923 2012-03-01  
shabumaiev 写道
请问 api docs 怎么down下来在window下用丫!

yahoo官网有下载,下载包里有文档的。
4 楼 shabumaiev 2012-03-01  
请问 api docs 怎么down下来在window下用丫!
3 楼 hastune 2012-02-18  
houfeng0923 写道
hastune 写道
API docs好坑爹啊

可不是,现在升级到3.4,相关的demo运行不了。看来yahoo的经营状况影响到这个技术团队的维护热情了。

不过还是很赞。嘎嘎!
2 楼 houfeng0923 2012-02-18  
hastune 写道
API docs好坑爹啊

可不是,现在升级到3.4,相关的demo运行不了。看来yahoo的经营状况影响到这个技术团队的维护热情了。
1 楼 hastune 2012-02-17  
API docs好坑爹啊

相关推荐

    YAHOO YUI3简单入门

    本教程将带你入门YUI3的基础知识。 **模块化设计** YUI3的核心理念是模块化,这意味着你可以根据需要只加载所需的组件,从而降低页面加载时间和资源消耗。例如,`yui-min.js`就是YUI3的最小核心模块,它包含了YUI...

    YUI 入门教程YUI 入门教程YUI 入门教程

    本教程将深入介绍YUI的基础知识和关键特性,帮助开发者快速入门。 首先,YUI提供了一系列强大的DOM操作工具,例如`YAHOO.util.Dom.get`用于通过ID查找页面元素,类似于`document.getElementById`。`YAHOO.util.Dom....

    学习YUI.Ext基础第一天

    在《学习YUI.Ext基础第一天》这篇文章中,作者回顾了过去对于Web开发技术的看法与实践经验,特别是关于JavaScript及其在构建现代Web应用中的作用。文章通过两个帖子的摘录,深入探讨了JavaScript的重要性以及它在...

    ext入门学习文档

    ### ExtJS 入门知识点详解 #### 一、ExtJS 是什么? ExtJS是一个功能强大的JavaScript框架,专门设计用于在客户端构建丰富的Web应用程序界面。它不仅支持开发RIA(Rich Internet Applications,即富互联网应用程序...

    Ext入门学习.docx

    ExtJS 入门学习 ExtJS 是一个 JavaScript 框架,用于在客户端创建丰富多彩的 Web 应用程序界面。ExtJS 可以用来开发 RIA(-rich internet application),也即富客户端的 AJAX 应用。ExtJS 最开始基于 YUI 技术,由...

    ext入门学习.pdf

    《Ext 入门学习》 ExtJS 是一款强大的JavaScript框架,专为构建功能丰富的Web应用程序界面而设计。它支持RIA(Rich Internet Applications)的开发,利用AJAX技术实现富客户端体验。由Jack Slocum开发,最初基于YUI...

    YUI 和GWT 优缺点搜集

    1. **学习曲线**:尽管使用Java降低了入门难度,但GWT的API和概念可能需要时间去理解。 2. **代码体积**:GWT编译出的JavaScript文件通常较大,可能影响加载速度,尤其是在没有使用代码分割或延迟加载的情况下。 3. ...

    ext入门学习.docx

    【Ext入门学习】 ExtJS是一个JavaScript框架,专为构建具有丰富用户界面的Web应用程序而设计。它最初由Jack Slocum开发,受到了Java Swing等技术的启发,且最初基于Yahoo! User Interface Library (YUI)。ExtJS允许...

    Extjs实用教程入门学习Extjs

    ### Extjs实用教程入门学习详解 #### 极致解析Extjs框架的核心价值与应用场景 **Extjs**,作为一款杰出的Ajax框架,以其强大的功能和灵活性,在Web开发领域占据了一席之地。它不仅能够帮助开发者构建出具备华丽...

    jquery入门培训文档

    - **与其他JavaScript库的对比**:与Prototype、YUI、Dojo和mooTools等库相比,jQuery不冲突于全局命名空间,学习曲线较平缓。 2. **jQuery开始前的准备** - **jQuery下载**:最新版本为1.4.2,可在官方网站下载...

    yui博客

    在描述中提到的“入门模板”,暗示这个压缩包提供了一个基础的框架,可以帮助新手快速上手YUI。这个模板可能包括了HTML结构、基本的样式、以及初始化的JavaScript代码,用于展示如何结合YUI库创建一个博客系统的基本...

    EXT入门详解.pdf

    UI(YUI)库的一个扩展而诞生的,但后来发展成为一个独立的项目,不再依赖于YUI。EXT因其适合企业级开发,能够实现复杂的Layout布局,以及与backbase等专业级应用相媲美的界面效果而备受推崇。其特色之一是提供了...

    ext入门必学.docx

    User Interface Library)的一个扩展,名为YUI.Ext,但随着时间发展,它成为一个独立的项目,不再依赖YUI。 1. Ext的核心特性 - **复杂布局**:EXT提供了多种布局管理器,如表单布局、列布局、绝对布局等,使得...

    ext入门学习[归类].pdf

    ExtJS最初基于YUI技术,并由开发者Jack Slocum设计,借鉴了Java Swing的组件组织方式。 在了解ExtJS时,首先要知道它能做什么。ExtJS允许开发人员动态创建和管理Web组件,轻松操控DOM对象。它提供了大量预定义的...

    ext入门必学

    Ext最初作为YUI(Yahoo User Interface Library)的扩展存在,名为YUI.Ext,随后发展成为一个独立的JavaScript框架,不再依赖于YUI。这一转变标志着Ext成为了一款更为成熟且适用于企业级开发的工具。 **知识点2:...

    extjs 的一些学习笔记

    以下是对ExtJS 入门学习的一些关键知识点的详细解释: 1. **核心改进**: - **框架架构重构**:ExtJS 4 对框架进行了重构,提高了性能和健壮性。 - **测试框架**:全面的跨浏览器测试确保了框架的兼容性和稳定性...

    Learning.the.Yahoo.User.Interface.library

    《学习雅虎用户界面库》是一本详细介绍雅虎用户界面库(YUI)的书籍,由Dan Wellman编写,于2008年3月首次出版。本书主要面向Web开发人员和技术爱好者,旨在帮助读者掌握YUI这一强大的JavaScript开发库。通过本书的...

Global site tag (gtag.js) - Google Analytics