最近看到這篇文章Backbone Aura難得的有提到一個web application core該做些什麼事情?跟我想的蠻相似的,這邊將他列出來: * 管理widget的life cycle的能力。 * 低階DOM操作處理 * 提供publish/subscribe的溝通管道給應用程式的各部位互相溝通
以下是我流解析。
管理widget的life cycle
Core是應用程式的進入點(entry poing),它必須在適當的時機init需要的widget/application part起來做事情,也只有Core才知道什麼時候必須做這些事情。當然也包括在適當的時機讓widget沈睡或消滅。
低階DOM操作
這有點像jQuery library主要在做的事情,不過世界上不是只有jQuery一種library,也不是任何情況下都可以用jQuery,有一個可以快速操作DOM的方法是必要的。
提供publish/subscribe的溝通方式
解耦後的application part/widget當然不能直接呼叫別人的attribute function(不然還解什麼耦),那要怎麼叫別人做事?行之有年的publish/subscribe機制在jmvc已經被整合進去,backbone上面還欠缺方法,backbone aura把這件事做出來了。
然後因為好奇它怎麼做的就看了一下source,在aura/www/js/aura/mediator.js
裡面定義了:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
|
看起來是利用一個變數來根據widget name儲存callback function進array裡面。