Backbone中父子view之間的值傳遞

       backbone中,使用最多的莫過於在view中進行操做,如模板的渲染以及事件函數的定義。爲了提升代碼的可維護性,通常地咱們會寫多個視圖即view,將界面按照功能的不一樣進行模塊化劃分,模塊與view一一對應。模塊化

       首先,咱們會定義一個父view,在view中控制不一樣子view的渲染,子view之間儘可能不產生聯繫。這樣,代碼之間的耦合度會下降不少,模塊的功能明確化,同時下降了開發的難度。筆者最近在項目中遇到父子view傳值問題,學習到了一個知識點,比較簡單易懂。主要想分享兩個內容:1.父子view是如何傳值的。2.父子view傳值要注意什麼。以我實際的項目爲例進行說明。函數

1、如何傳值學習

       項目中利用require.js按需加載js文件,大大地節約了資源。首先在global.js中申明子view的路徑,方便在父view中進行引用。熟悉require.js的讀者都知道,require.js是經過define進行函數的定義以及相關依賴模塊的引入,這裏沒必要細說,假設參數定義爲childrenView。在父view中new一個childrenView對象,這樣咱們經過自定義事件進行操做就行。此時new的對象包含view的render方法等。若是在new childrenView(參數1)時,參數1能夠爲空,此時父子view之間沒有值傳遞;當參數2存在時,父子view存在值傳遞,參數1是父view傳遞給子view的。在子view的initialize(參數2)中能夠接收參數1,即參數1和參數2是對等的。ui

       此外,由於是在父view中new的子view,能夠在父view能夠對子view進行操做。this

2、細節問題spa

       經過一咱們能夠很方便在子view中接收父view的數據,可是這裏有個細節問題。我曾在這裏困惑很久。參數最好不要傳父view,即父view的this或者view默認的事件函數等。由於這樣作,參數會將子view默認的事件函數給覆蓋,致使子view相同的事件函數失效。簡單來說,若是父子view都存在的,好比render,events或者其餘定義相同的值或者是自定義函數不能做爲參數傳遞。對象

相關文章
相關標籤/搜索