造輪子

前端有哪些輪子(不包括 Node 后端領(lǐng)域)

  1. 標準庫的擴充
    1. underscore.js 擴充了 Array 和 Object 相關(guān) API
    2. moment.js 擴充了 Date
    3. bluebird.js / hax/my-promise 實現(xiàn)了 Promise
    4. async.js 模擬了 async 操作符
    5. es5shim 用 ES 3 語法部分實現(xiàn)了 ES 5 特性
    6. handlebars.js 實現(xiàn)模板字符串功能
  2. DOM 的擴充
    1. jQuery.js 操作 DOM
    2. video.js 操作 video
    3. Fabric.js 操作 canvas
  3. UI 組件
    1. 純 CSS 的 UI 組件庫艺糜,如 Bulma
    2. 大而全的 UI 框架(CSS + JS)髓涯,如 Bootstrap、Element UI
    3. 垂直領(lǐng)域的 UI 組件
      1. 專門做輪播的 Swiper
      2. 專門做輸入提示的 typeahead.js
      3. 專門做文件上傳的 fine-uploader
      4. 專門做 3D 瓦片效果的 vanilla-tilt.js
      5. 專門做視差效果的 parallax.js
      6. 專門做數(shù)據(jù)可視化的 D3.js
      7. 專門做圖表的 echarts.js
      8. 專門做動畫的 velocity.js
      9. 專門做粒子效果的 particle.js
      10. 專門做手勢識別的 hammer.js
  4. 編程思想類的輪子
    1. 實現(xiàn) MVC 思想的 backbone.js
    2. 實現(xiàn) MVVM 思想的 AngularJS 1 和 Vue 1
    3. 實現(xiàn) Virtual DOM 的 React 和 Preact
    4. 實現(xiàn)單向數(shù)據(jù)流(FLUX)思想的 Redux
    5. 實現(xiàn) Reactive 思想的 Rx.js
    6. 實現(xiàn) Rails 思想的 Ember.js
    7. 實現(xiàn)函數(shù)式思想的 Ramda

我們的重點

重點是 UI 組件,因為

  1. 我們?nèi)粘9ぷ髦薪?jīng)常用到的就是 UI 組件
  2. UI 組件一般是由 HTML籽孙、CSS 和 JS 組成,把 UI 組件做好了肆糕,就能更好的做網(wǎng)頁
  3. UI 組件做起來更有趣态鳖,所有效果你都能用眼睛看到,而做編程思想類耿芹、DOM擴充類組件可能過于抽象

原則

(內(nèi)部)分層原則:正交原則
(對外)封裝原則:面向接口編程

例子1崭篡,一個 Tab 組件

新手思維:.show .hide
正交思維:JS 不要控制樣式,只切換狀態(tài)

http://js.jirengu.com/peluzeyuse/1/edit?html,css,js,output

例子2吧秕,一個 sticky 組件

新手思維:用 JS 控制定位
正交思維:JS 不要控制樣式琉闪,只切換狀態(tài)

http://js.jirengu.com/wifulosojo/1/edit?html,js,output

例子3,一個 Dialog 組件

注意面向接口編程

http://js.jirengu.com/lorinerade/1/edit?css,js,output

例子4砸彬,一個 suggestion 組件

注意面向接口編程

http://js.jirengu.com/yoqaliyige/1/edit?css,js,output

例子5颠毙,一個輪播組件

注意正交原則和面向接口編程

http://js.jirengu.com/gujoqanaji/1/edit?css,js,output

無縫輪播:https://frankfang.github.io/slides-demo-2/
無縫的源碼中有一處 .offset() 是一個高級用法:

image.png

數(shù)據(jù)或狀態(tài)存儲在哪里

  1. 可以存在 DOM 上面(如何 data-id、class)砂碉,缺點:可能被同事覆蓋或修改
  2. 可以存在 JS 變量里
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蛀蜜,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子增蹭,更是在濱河造成了極大的恐慌滴某,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異霎奢,居然都是意外死亡偏瓤,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進店門椰憋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來厅克,“玉大人,你說我怎么就攤上這事橙依≈ぶ郏” “怎么了?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵窗骑,是天一觀的道長女责。 經(jīng)常有香客問我,道長创译,這世上最難降的妖魔是什么抵知? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮软族,結(jié)果婚禮上刷喜,老公的妹妹穿的比我還像新娘。我一直安慰自己立砸,他們只是感情好掖疮,可當我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著颗祝,像睡著了一般浊闪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上螺戳,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天搁宾,我揣著相機與錄音,去河邊找鬼倔幼。 笑死盖腿,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的凤藏。 我是一名探鬼主播奸忽,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼揖庄!你這毒婦竟也來了栗菜?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蹄梢,失蹤者是張志新(化名)和其女友劉穎疙筹,沒想到半個月后富俄,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡而咆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年漫蛔,在試婚紗的時候發(fā)現(xiàn)自己被綠了宁炫。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片祝谚。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡锨阿,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出涯捻,到底是詐尸還是另有隱情浅妆,我是刑警寧澤,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布障癌,位于F島的核電站凌外,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏涛浙。R本人自食惡果不足惜康辑,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望轿亮。 院中可真熱鬧疮薇,春花似錦、人聲如沸哀托。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽仓手。三九已至,卻和暖如春玻淑,著一層夾襖步出監(jiān)牢的瞬間嗽冒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工补履, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留添坊,地道東北人。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓箫锤,卻偏偏與公主長得像贬蛙,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子谚攒,可洞房花燭夜當晚...
    茶點故事閱讀 44,901評論 2 355

推薦閱讀更多精彩內(nèi)容