YUI3學習(一) 入門

2021-06-05 07:29:09 字數 2056 閱讀 2285

學習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(根據網友的學習經驗,學習路線最好是依據官方說明的順序學習(yui3核心(yui global object\node\event)->元件框架->元件);循序漸進,逐步了解yui組織結構及使用方法。

hello yui3 demo

YUI 3 學習筆記 queue base

今天 yui 3 發布了 beta 1,實在是高興。繼續學習原始碼 queue base.一點心得 yui3 beta1 的 yui seed,與pr1 的架構圖 已經有了稍許不同 增加了 queue base 模組。queue base 的原始碼非常簡單,就是乙個包裝後的陣列。封裝後的介面非常有 ...

YUI3學習感想 之API頁面分析說明

modules 所有的模型 classes 選中模型所包含的所有類資訊 files 該模型的js檔案 properties 選中class的屬性資訊 methods 選中class的方法 events 選中class的事件資訊 configuration attributes 選中class的配置引...

YUI 3 學習筆記(4) Base基類

base是乙個基礎類,通過繼承base可以以一種統一的方式建立自己的具有新的屬性 並可作為事件目的 event target 的類。b 1.要使用base,首先要引入yui3的種子檔案 b 然後載入相應模組 yui use base function y b 2.繼承base b 以下是繼承base...