2
我想在我的Knockout網絡應用程序中顯示當前時間,並讓它每秒更新一次。我正在考慮兩種解決方案,我試圖確定哪種方法更合適。何時將邏輯從VM移至Knockout中的自定義綁定更合適?
方法1:查看模型邏輯
JS:
vm.currentTime = ko.observable(Date.now());
setInterval(function() {
vm.currentTime(Date.now());
}, 1000);
HTML:
<span data-bind="text: currentTime"></span>
方法2:自定義綁定
JS:
vm.getTime = function() {
return Date.now();
};
HTML:
<span data-bind="textInterval: { cb: getTime, interval: 1000 }"></span>
的textInterval
結合是一個自定義綁定將基本上調用回調以指定間隔和更新節點與返回的值。它也將清除domNodeDisposal
的時間間隔。
有幾件事情需要注意:
- 用於獲取時間的邏輯實際上比出更復雜,在VM所屬,而不是不管使用哪種方法的結合
- 單元測試是對我們很重要
我知道有沒有這兩種方法相差無幾,但我更感興趣的是在淘汰賽哲學中最正確的做法。什麼時候應該將邏輯從VM移動到自定義綁定?