項目的 Demo 在 http://juy.fm 。
雖然目前網(wǎng)站還只是個空架子还绘,我們還是未雨綢繆,引入「模塊化編程」的概念拍顷。舉些簡單的例子,項目中可能會用到一些公用方法尿贫,我希望各個文件都可以引用到踏揣,通過模塊化編程,我可以把這些方法都放在一個叫 utils.js 的文件中呼伸,然后在其它各文件中「依賴」它;另一個例子括享,音樂網(wǎng)站當(dāng)然需要有一個用來播放的 audio 對象,我可以把這個對象的所有功能全部放在一個文件中剩愧,在其它需要 audio 的文件中「依賴」它娇斩,好處是代碼功能得到合理劃分。
在 Meteor 中我選擇了 mrt:define 插件犬第,它實現(xiàn)了 Require 的核心功能,在 Meteor 的框架下使用方式略有改動歉嗓,上手還是很容易的。我之前對 Meteor 和 RequireJS 的聯(lián)用有一些誤區(qū)哮幢,Meteor 的 Developer 尤小右在知乎上做了耐心的解答。
另外橙垢,audio 對象是在詳細頁的 html 渲染完成后附加在 body 上的,用到了 Template.TemplateName.onRendered(function() {}) 方法柜某,onRendered 和已被廢棄的 rendered 的區(qū)別,可以參見 Meteor 社區(qū)的這篇討論还棱。
注:其實 audio DOM 對象已經(jīng)自帶了非常豐富的操作音頻文件的功能惭等,之所以把它封裝成對象办铡,是考慮日后可能會有增加一些復(fù)雜功能的需求辞做。目前來看寡具,封裝 audio 有多此一舉的嫌疑,我們之后根據(jù)需求再來修正框喳。
Github地址:加入模塊化的支持