導(dǎo)引
歡迎使用BUI醇蝴!在這一章節(jié)里控硼,我們將學(xué)習(xí)以下內(nèi)容:
如何加載BUI文件和開(kāi)始使用BUI的一些基礎(chǔ)功能
BUI依賴(lài)的其他框架
如何去定義模塊和加載模塊
如何使用API以及對(duì)應(yīng)的demo
在使用過(guò)程中遇到的問(wèn)題如何去處理
如何開(kāi)始
最簡(jiǎn)單的使用BUI的方式是直接引用CDN上的文件,這能節(jié)約很多部署文件帶來(lái)的問(wèn)題,不過(guò)這也要求,你必須能訪問(wèn)公共網(wǎng)絡(luò)。
你只需要把你要運(yùn)行的頁(yè)面放到一個(gè)web server上柿冲,BUI框架沒(méi)有什么安全上的限制,所以不需要服務(wù)器有特別的功能兆旬,不過(guò)如果能提供Combo功能更好假抄,Combo功能在下面會(huì)介紹。
最簡(jiǎn)單的示例
<pre class="prettyprint linenums" style="padding: 8px; background-color: rgb(247, 247, 249); border: 1px solid rgb(225, 225, 232); margin-top: 8px; box-shadow: rgb(251, 251, 252) 40px 0px 0px inset, rgb(236, 236, 240) 41px 0px 0px inset; color: rgb(51, 51, 51); font-size: 12px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>Tutorial: Hello BUI!</title>
- <link rel="stylesheet">
- <link rel="stylesheet">
- </head>
- <body>
- <h1>Hello</h1>
- <script src="https://s.tbcdn.cn/g/fi/bui/jquery-1.8.1.min.js"></script>
- <script src="https://s.tbcdn.cn/g/fi/bui/seed-min.js?t=201212261326"></script>
- <script>
- BUI.use('bui/overlay', function (Overlay) { //因?yàn)閙essage屬于
- Overlay.Message.Alert('歡迎使用BUI');
- });
- </script>
- </body>
- </html>
</pre>
上面的代碼演示了如何使用BUI丽猬,你需要引入:
- BUI默認(rèn)的CSS文件宿饱,如果你有自定義的樣式可以不引入
- BUI依賴(lài)的類(lèi)庫(kù),默認(rèn)是JQuery,也可以更換為Kissy脚祟,參看詳情
你可能需要處理使用https的資源谬以,你可以直接將地址換成類(lèi)似于:
https://s.tbcdn.cn/g/fi/bui/seed-min.js的地址
不使用loader
如果你對(duì)loader陌生,可以直接將整個(gè)BUI引入由桌,但是我們不推薦這樣做:
- 整個(gè)BUI文件很大为黎,超過(guò)200k
- 有一些模塊并未包含到打包好的文件中
- 未來(lái)不排除,在新的版本中去掉這種引入方式
<pre class="prettyprint linenums" style="padding: 8px; background-color: rgb(247, 247, 249); border: 1px solid rgb(225, 225, 232); margin-top: 8px; box-shadow: rgb(251, 251, 252) 40px 0px 0px inset, rgb(236, 236, 240) 41px 0px 0px inset; color: rgb(51, 51, 51); font-size: 12px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>Tutorial: Hello BUI!</title>
- <link rel="stylesheet">
- <link rel="stylesheet">
- </head>
- <body>
- <h1 id="greeting">Hello</h1>
- <script src="https://s.tbcdn.cn/g/fi/bui/jquery-1.8.1.min.js"></script>
- <script src="https://s.tbcdn.cn/g/fi/bui/bui-min.js?t=201212261326"></script>
- <script>
- BUI.Message.Alert('歡迎使用BUI'); //Message 屬于Overlay模塊行您,BUI.Message = BUI.Overlay.Message
- //TO DO
- </script>
- </body>
- </html>
</pre>
<label class="label label-info" style="display: inline-block; padding: 1px 4px 2px; font-size: 12px; font-weight: bold; line-height: 18px; color: rgb(255, 255, 255); vertical-align: middle; white-space: nowrap; text-shadow: rgba(0, 0, 0, 0.25) 0px -1px 0px; background-color: rgb(58, 135, 173); border-radius: 3px;">注意</label> 以下幾點(diǎn):
- css文件放到
head
標(biāo)簽中 - script文件作為
body
的最后標(biāo)簽铭乾,防止JS阻塞DOM加載
更多的關(guān)于加載和配置BUI的內(nèi)容請(qǐng)參看:BUI的加載和配置
模塊規(guī)范
BUI的模塊規(guī)范遵循CMD規(guī)范,加載默認(rèn)方式使用seajs,可以去seajs的文檔了解更多的信息娃循。
作為BUI的開(kāi)發(fā)者為了方便用戶炕檩,我們?cè)趯?shí)現(xiàn)和加載層次上,屏蔽了底層loader的存在捌斧,您只需要按照BUI的寫(xiě)法既可以無(wú)障礙的使用loader笛质。
定義模塊
模塊的定義遵循CMD規(guī)范,模塊的名稱(chēng)一般使用"/"
捞蚂,例如 bui/list/simplelist
,模塊名稱(chēng)必須跟目錄有對(duì)應(yīng)關(guān)系经瓷,上面定義的模塊的文件是bui/list/simplelist.js
這里有非常復(fù)雜的目錄映射,不過(guò)日常使用中洞难,使用最簡(jiǎn)單的方式:文件目錄名跟模塊名一致的規(guī)則即可。
示例如下:
<pre class="prettyprint linenums" style="padding: 8px; background-color: rgb(247, 247, 249); border: 1px solid rgb(225, 225, 232); margin-top: 8px; box-shadow: rgb(251, 251, 252) 40px 0px 0px inset, rgb(236, 236, 240) 41px 0px 0px inset; color: rgb(51, 51, 51); font-size: 12px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">
//定義模塊的函數(shù)揭朝,有3個(gè)變量队贱,模塊名稱(chēng)、依賴(lài)的模塊和模塊的主體函數(shù)
//模塊名稱(chēng)和依賴(lài)的模塊可以省略
define('newModuleName',['module1','module2'],function(require){
var Module1 = require('module1'); //根據(jù)模塊名稱(chēng)獲取模塊
var NewModule = function(){ //定義模塊
};
return NewModlue; //將定義的新模塊返回潭袱,在其他模塊中require('newModuleName')來(lái)使用
});
</pre>
CMD的規(guī)范比這里的示例要復(fù)雜柱嫌,但是僅僅使用BUI,了解示例的代碼就足夠了屯换。如果想了解更多這方面的知識(shí)的話编丘,可以去深入了解一下seajs与学。
模塊加載
以下代碼簡(jiǎn)單的展示加載BUI模塊的方式:
默認(rèn)的加載方式
BUI.use(id, callback)
<pre class="prettyprint linenums" style="padding: 8px; background-color: rgb(247, 247, 249); border: 1px solid rgb(225, 225, 232); margin-top: 8px; box-shadow: rgb(251, 251, 252) 40px 0px 0px inset, rgb(236, 236, 240) 41px 0px 0px inset; color: rgb(51, 51, 51); font-size: 12px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">
<script src="https://s.tbcdn.cn/g/fi/bui/jquery-1.8.1.min.js"></script>
<script src="https://s.tbcdn.cn/g/fi/bui/seed-min.js?t=201212261326"></script>
<script type="text/javascript">
BUI.use('bui/list',function(List){
});
//一次加載多個(gè)模塊
//bui/list 對(duì)應(yīng)模塊 List
//bui/data 對(duì)應(yīng)模塊 Data
BUI.use(['bui/list','bui/data'],function(List,Data){
});
</script>
</pre>
加載多個(gè)模塊時(shí),當(dāng)模塊加載完畢后會(huì)調(diào)用指定的callback
方法嘉抓,其中回調(diào)方法的參數(shù)與加載的模塊一一對(duì)應(yīng)索守。如:加載['bui/list','bui/data']
,其后的回調(diào)方法則需要定義兩個(gè)參數(shù)function(List,Data)
抑片,則參數(shù)List所對(duì)應(yīng)的是bui/list模塊的對(duì)象卵佛,如此類(lèi)推。
使用CDN
我們所有的示例中皆使用cdn上的JS文件敞斋,這意味著你可以直接復(fù)制代碼粘貼到本地運(yùn)行截汪,而不需要修改任何路徑,但這里有以下缺點(diǎn):
- 開(kāi)發(fā)方面植捎,cdn上的文件都是經(jīng)過(guò)build的衙解,經(jīng)過(guò)壓縮和代碼優(yōu)化,這也意味著調(diào)試?yán)щy
- 這也要求你能說(shuō)服你的客戶焰枢,接受引用cdn上的文件蚓峦,很多情況下,這很困難医咨。
- 加載你自己的模塊時(shí)枫匾,你需要額外配置自己的配置文件。
- 目前CDN上的代碼更新比較頻繁拟淮,因?yàn)锽UI處于開(kāi)發(fā)階段必然會(huì)接受大量需求和反饋干茉,為了能及時(shí)響應(yīng),所以不可避免的會(huì)偶爾的引入一些問(wèn)題很泊。
上面的所有問(wèn)題都有對(duì)應(yīng)的解決方案角虫,可以查看以下章節(jié)加載文件,編譯自己的模塊來(lái)進(jìn)一步了解委造。
假如你要部署自己的本地應(yīng)用戳鹅,你可以下載BUI的源碼,同時(shí)部署到自己的web server上。你可以將自己的代碼放在自己的目錄下昏兆,如下圖:
然后這樣引用文件:
<pre class="prettyprint linenums" style="padding: 8px; background-color: rgb(247, 247, 249); border: 1px solid rgb(225, 225, 232); margin-top: 8px; box-shadow: rgb(251, 251, 252) 40px 0px 0px inset, rgb(236, 236, 240) 41px 0px 0px inset; color: rgb(51, 51, 51); font-size: 12px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>Tutorial: Hello BUI!</title>
- <link href="../assets/css/bui/css/dpl-min.css" rel="stylesheet">
- <link href="../assets/css/bui/css/bui-min.css" rel="stylesheet">
- </head>
- <body>
- <h1 id="greeting">Hello</h1>
- <script src="../assets/js/bui/jquery-1.8.1.min.js"></script>
- <script src="../assets/js/bui/seed-min.js?t=201212261326"></script>
- <script>
- BUI.use('bui/list',function(List){
- //TO DO
- });
- </script>
- </body>
- </html>
</pre>
獲取幫助
- 你可以去BUI網(wǎng)站查看更多的Demo
- 你可以去BUI論壇參與交流和探討
- 你可以去BUI API查看控件的API以便更加了解BUI
- 你可以去issue列表里提交自己的問(wèn)題和需求
- 你可以參加旺旺群:778141976枫虏,QQ群:138692365
下一步學(xué)習(xí)
開(kāi)始使用BUI是非常簡(jiǎn)單的爬虱,只需要引入BUI所依賴(lài)的文件隶债,和引入對(duì)應(yīng)的模塊即可跑筝。但是BUI有很多非常好的機(jī)制和功能死讹,根據(jù)你的需要你可以按照不同的章節(jié)進(jìn)行學(xué)習(xí)曲梗。
- 假如你使用過(guò)BUI赞警,你想了解更多的BUI整體的設(shè)計(jì)和未來(lái)的方向妓忍,你可以去看一下BUI的現(xiàn)狀章節(jié)
- 假如你想知道更多的加載BUI模塊相關(guān)的信息,你可以去查看一下加載文件章節(jié)
- 假如你僅僅是被BUI的控件吸引愧旦,可以直接去BUI網(wǎng)站復(fù)制對(duì)應(yīng)的Demo
- 假如你想了解BUI的控件結(jié)構(gòu),基于BUI進(jìn)行新控件的開(kāi)發(fā)和擴(kuò)展忘瓦,可以從類(lèi)的創(chuàng)建和繼承開(kāi)始
BUI 剛剛起步,但是我們堅(jiān)持的理念是:讓您的工作更輕松耕皮,不讓前端領(lǐng)域成為您項(xiàng)目的瓶頸境蜕,更希望您能參與到BUI的開(kāi)發(fā)當(dāng)中!