摘要:整個的代碼非常簡潔,構(gòu)造邏輯也一目了然。生成唯一合并參數(shù)列表列表項目的初始化用戶定義的初始化事件處理可以看到,最重要的代碼,在于的初始化。這段代碼可以看出,如果實例化的時候有傳入一個節(jié)點,則綁定這個節(jié)點,否則生成一個這樣的節(jié)點。
整個View的代碼非常簡潔,View構(gòu)造邏輯也一目了然。
javascriptvar View = Backbone.View = function(options) { this.cid = _.uniqueId("view"); options || (options = {}); _.extend(this, _.pick(options, viewOptions)); this._ensureElement(); this.initialize.apply(this, arguments); this.delegateEvents(); };
生成唯一cid
合并參數(shù)列表
列表項目
View的初始化
用戶定義的初始化
事件處理
可以看到,最重要的代碼,在于View的初始化。
javascript_ensureElement: function() { if (!this.el) { var attrs = _.extend({}, _.result(this, "attributes")); if (this.id) attrs.id = _.result(this, "id"); if (this.className) attrs["class"] = _.result(this, "className"); var $el = Backbone.$("<" + _.result(this, "tagName") + ">").attr(attrs); this.setElement($el, false); } else { this.setElement(_.result(this, "el"), false); } }
這段代碼可以看出,如果實例化的時候有傳入一個DOM節(jié)點,則綁定這個DOM節(jié)點,否則生成一個這樣的DOM節(jié)點。
javascriptvar view = new View({ el: $("body"), model: new Backbone.Model() })
結(jié)語:嗯,Backbone.View真的好簡單,沒做什么事情。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/85639.html
1. 開場 1.1 MVC? MVC是一種GUI軟件的一種架構(gòu)模式。它的目的是將軟件的數(shù)據(jù)層(Model)和視圖(view)分開。Model連接數(shù)據(jù)庫,實現(xiàn)數(shù)據(jù)的交互。用戶不能直接和數(shù)據(jù)打交道,而是需要通過操作視圖,然后通過controller對事件作出響應(yīng),最后才得以改變數(shù)據(jù)。最后數(shù)據(jù)改變,通過觀察者模式更新view。(所以在這里需要用到設(shè)計模式中的觀察者模式) 1.2 Smalltalk-80...
摘要:以為例構(gòu)造函數(shù)的內(nèi)容構(gòu)造函數(shù)的內(nèi)部一般會做以下幾個操作各種給內(nèi)部對象設(shè)置屬性。為什么呢源碼做出了解釋。在里面會調(diào)用用戶傳入的回調(diào)函數(shù)并觸發(fā)事件表示已經(jīng)同步了。整個的源碼事實上就是這兩組東西。 1. 開場 強烈建議一邊看著源碼一邊讀本文章,本文不貼大段代碼。源碼地址。在寫backbone應(yīng)用的時候,說實話,大部分的時間都是在寫這三個模塊的內(nèi)容。關(guān)于這三個模塊的分析網(wǎng)上隨隨便便就能找到一堆...
摘要:因為是一條數(shù)據(jù)記錄,也就是說,相當(dāng)于是一個數(shù)據(jù)集。通常我們需要重載函數(shù),聲明,以及通過或為視圖指定根元素。通過綁定視圖的函數(shù)到模型的事件模型數(shù)據(jù)會即時的顯示在中。實例屬性參數(shù)以及類屬性參數(shù)會被直接注冊到集合的構(gòu)造函數(shù)。 對于初學(xué)backbone.js的同學(xué)可以先參考我這篇文章:Backbone.js學(xué)習(xí)筆記(一) Backbone源碼結(jié)構(gòu) showImg(https://segme...
摘要:個人認(rèn)為,讀懂老牌框架的源代碼比會用流行框架的要有用的多。另外,源代碼中所有的以開頭的方法,可以認(rèn)為是私有方法,是沒有必要直接使用的,也不建議用戶覆蓋。 寫在前面 backbone是我兩年多前入門前端的時候接觸到的第一個框架,當(dāng)初被backbone的強大功能所吸引(當(dāng)然的確比裸寫js要好得多),雖然現(xiàn)在backbone并不算最主流的前端框架了,但是,它里面大量設(shè)計模式的靈活運用,以及令...
摘要:個人認(rèn)為,讀懂老牌框架的源代碼比會用流行框架的要有用的多。另外,源代碼中所有的以開頭的方法,可以認(rèn)為是私有方法,是沒有必要直接使用的,也不建議用戶覆蓋。 寫在前面 backbone是我兩年多前入門前端的時候接觸到的第一個框架,當(dāng)初被backbone的強大功能所吸引(當(dāng)然的確比裸寫js要好得多),雖然現(xiàn)在backbone并不算最主流的前端框架了,但是,它里面大量設(shè)計模式的靈活運用,以及令...
閱讀 1216·2021-09-30 09:47
閱讀 3769·2021-09-06 15:02
閱讀 1781·2021-09-01 10:46
閱讀 2364·2019-08-30 15:52
閱讀 601·2019-08-29 15:28
閱讀 1874·2019-08-29 15:08
閱讀 1154·2019-08-29 13:28
閱讀 2580·2019-08-29 12:19