監(jiān)測(cè)
knockout的三個(gè)核心特點(diǎn)
- 監(jiān)測(cè)與依賴跟蹤
- 聲明式綁定
- 模板
在本文檔中根穷,你將學(xué)習(xí)三個(gè)特點(diǎn)中的第一個(gè)。但是在這之前,先來(lái)解釋一下MVVM模型以及View Model的概念。
MVVM and View Models
Model-View-View Model(MVVM)是用來(lái)建立用戶界面的一種設(shè)計(jì)模式崩侠。它通過(guò)將復(fù)雜的UI分割成三部分的方式,從而使得UI部分變得簡(jiǎn)單
- ** A model:**你的應(yīng)用程序存儲(chǔ)的數(shù)據(jù)坷檩。這個(gè)數(shù)據(jù)反映為對(duì)象和業(yè)務(wù)邏輯中的方法(例如却音,銀行賬戶有轉(zhuǎn)賬功能),并且這個(gè)方法獨(dú)立于任何UI矢炼。當(dāng)你使用KO時(shí)系瓢,通常你是通過(guò)Ajax請(qǐng)求向服務(wù)器獲取存儲(chǔ)的模型數(shù)據(jù)。
- A view model:
通過(guò)KO創(chuàng)建一個(gè)View Model,僅僅只需聲明一個(gè)JavaScript對(duì)象句灌,例如夷陋,
var myViewModel = { personName: 'Bob', personAge: 123 };
接著,你可以通過(guò)聲明式綁定創(chuàng)建一個(gè)簡(jiǎn)單的上面的view model的 view。例如骗绕,下面是PersonName的示例
The name is <span data-bind="text: personName"></span>
Activating Knockout
雖然data-bing
不是HTML的原生屬性藐窄,但是它依舊可用(它嚴(yán)格遵從HTML5規(guī)范,因此在HTML4中使用也是沒(méi)有任何問(wèn)題的爹谭,即使驗(yàn)證工具指出它是一個(gè)不認(rèn)識(shí)的屬性也沒(méi)關(guān)系)枷邪。但是由于瀏覽器不知道它是什么意思,所以你需要使用Knockout來(lái)是它工作诺凡。使用Knockout,在JS中添加下面的代碼:
ko.applyBindings(myViewModel);
你可以將你的JS代碼放在HTML文檔的后面践惑,也可以放在前面腹泌,但是請(qǐng)放在DOM-ready處理函數(shù)中,例如jQuery’s $
function尔觉。