開源框架knot.js的優(yōu)勢都有哪些

本篇文章給大家分享的是有關(guān)開源框架knot.js的優(yōu)勢都有哪些,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

創(chuàng)新互聯(lián)自成立以來,一直致力于為企業(yè)提供從網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)、網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站、電子商務(wù)、網(wǎng)站推廣、網(wǎng)站優(yōu)化到為企業(yè)提供個(gè)性化軟件開發(fā)等基于互聯(lián)網(wǎng)的全面整合營銷服務(wù)。公司擁有豐富的網(wǎng)站建設(shè)和互聯(lián)網(wǎng)應(yīng)用系統(tǒng)開發(fā)管理經(jīng)驗(yàn)、成熟的應(yīng)用系統(tǒng)解決方案、優(yōu)秀的網(wǎng)站開發(fā)工程師團(tuán)隊(duì)及專業(yè)的網(wǎng)站設(shè)計(jì)師團(tuán)隊(duì)。

knot.js 這個(gè)項(xiàng)目其實(shí)兩年前就已經(jīng)開始并且成型了,它的第一個(gè)版本實(shí)際上已經(jīng)被我應(yīng)用到自己的項(xiàng)目中已經(jīng)一年有余,效果很不錯。不過由于一直忙于工作和小孩,再加上拖延癥爆發(fā),直到現(xiàn)在才將這個(gè)項(xiàng)目徹底重構(gòu)完成,并架設(shè)了網(wǎng)站和撰寫了詳細(xì)的文檔。

Knot.js并不是簡單的“另一個(gè)”前端MVVM框架。 比較AngularJS,KnockoutJS等前輩,knot.js有很多創(chuàng)新和突破,下面我簡單介紹下knot.js的幾大優(yōu)勢:

CBS

CBS是一種全新的前端開發(fā)方式。它的名字來自于“Cascading Binding Sheet”, 看起來是不是和“CSS”很像?實(shí)際上它的工作方式也和CSS非常相似,熟悉CCS的你幾乎不需要多少額外的成本就能學(xué)會。

就像CSS把樣式從HTML中提取出來使得網(wǎng)頁的可維護(hù)性得以大幅提高, CBS把混雜在HTML中的數(shù)據(jù)綁定邏輯提取出來,形成獨(dú)立的,結(jié)構(gòu)化的CBS塊或者CBS文件,讓你的HTML和數(shù)據(jù)綁定邏輯清爽易讀。

下圖左邊是AngularJS的數(shù)據(jù)綁定配置實(shí)例片段,右邊是同樣功能的CBS化之后的knot.js配置實(shí)例片段,knot.js明顯清爽很多。 隨著項(xiàng)目的變大和變復(fù)雜,CBS帶來的優(yōu)勢將會十分顯著。事實(shí)上去年讓我冒險(xiǎn)將完全不成熟的knot.js應(yīng)用于項(xiàng)目的主要原因就是我實(shí)在無法抵擋CBS 帶來的誘惑。 相信你只要嘗試一下CBS也會有類似的感受。

開源框架knot.js的優(yōu)勢都有哪些

自動數(shù)據(jù)感知

Knot.js的另一項(xiàng)特色是數(shù)據(jù)自動感知功能。  傳統(tǒng)MVVM框架為了實(shí)現(xiàn)數(shù)據(jù)感知(偵測數(shù)據(jù)變化以修改UI),往往逼迫用戶按它的要求和規(guī)范編寫model/view  model,你所熟悉的一切在框架里都變了,甚至一個(gè)簡單的計(jì)時(shí)器都得重新學(xué)習(xí),全程學(xué)習(xí)曲線均相當(dāng)陡峭。

Knot.js則幾乎不對你的model/view model做任何要求,哪怕是一個(gè)直白的json對象,knot.js也能自動建立雙向綁定。你以前所有的知識在knot.js中都有效,只需通過簡單地熟悉下Knot.js中寥寥的幾個(gè)概念,你就能迅速上手。

下圖左邊是AngularJS的代碼片段,右邊是使用Knot.js后的代碼片段。你應(yīng)該能發(fā)現(xiàn)Knot.js的代碼和你平時(shí)寫的js代碼幾乎沒什么不同。

開源框架knot.js的優(yōu)勢都有哪些

調(diào)試器

相信任何一個(gè)用過框架的程序猿都有過和框架搏斗的痛苦經(jīng)歷。一個(gè)小小的配置錯誤,就能殺掉你一個(gè)下午的時(shí)間。  Knot.js希望改變這個(gè)現(xiàn)狀。所以我模仿了常見的CSS調(diào)試器開發(fā)了knot.js  CBS調(diào)試器,使你能夠?qū)崟r(shí)監(jiān)控整個(gè)系統(tǒng)內(nèi)各個(gè)HTML元素上的綁定狀態(tài)。knot.js調(diào)試器甚至還提供了CSS調(diào)試器常見的鼠標(biāo)選取元素/元素高亮功 能,讓你輕易定位自己想要監(jiān)控的HTML元素。

knot.js調(diào)試器基本上把整個(gè)系統(tǒng)變成了一個(gè)白盒系統(tǒng),所有的工作細(xì)節(jié)均能一覽無遺。你開發(fā)過程中的絕大多數(shù)問題都能通過調(diào)試器解決。

開源框架knot.js的優(yōu)勢都有哪些

Knot.js還有這些優(yōu)點(diǎn)

  1. 文件很小。壓縮后不過45k(不含debugger)。

  2. 快速。根據(jù)我的初步測試,knot.js僅略慢于直接使用jQuery操作DOM Tree,快過AngularJS。http://www.knotjs.com/performance/

  3. Knot.js功能齊全。雖然文件微小,但這是因?yàn)檎麄€(gè)系統(tǒng)設(shè)計(jì)頗為簡潔。你需要的各種功能基本上knot.js都已經(jīng)提供。

  4. 自由。knot.js在整個(gè)設(shè)計(jì)過程中十分注意程序員對系統(tǒng)的控制性。你幾乎可以在任何一個(gè)步驟介入,增加自己想要的邏輯。使用這個(gè)框架,你不會比直接使用jQuery多感受到多少限制。

  5. 免費(fèi)?;贛IT License。

一些提示

  1. Knot.js 支持所有的主流瀏覽器,但不支持ie8及更早版本

  2. 這是Knot.js的***個(gè)正式發(fā)布版本

  3. 雖然我會持續(xù)發(fā)表博客介紹Knot.js的方方面面,但在中文網(wǎng)站建立起來之前,你可能需要閱讀英文文檔獲得幫助。

一個(gè)例子

下面是一個(gè)簡單的例子,以期給你一個(gè)初步的直觀感受。 這個(gè)例子顯示一個(gè)文本框,輸入姓名,就能得到來自knot.js的問候。你可以訪問knot.js主頁試用: http://www.knotjs.com

你可以立即訪問 http://www.knotjs.com/tutorial/ 開始學(xué)習(xí)使用knot.js。

HTML

<div class="knot_example">      <!-- 清晰干凈的HTML,維護(hù)便利 -->      <h4>Greeting from knot.js</h4>     <p>         <label>Input your name here: </label>         <input type="text">     </p>     <p>         <b id="helloString"></b>     </p> </div>

CBS

/*     這段CBS吧文本框的value屬性綁定到#helloString的text屬性     文本框的輸出將被加上"Hello" 再輸出到 #helloString.text     "[immediately:1]" 這個(gè)選項(xiàng)告訴knot.js每一次擊鍵都要更新數(shù)據(jù)。  */ .knot_example input{     value[immediately:1] > {return value? ("Hello " + value + " !"): ""}         : #helloString.text; }

以上就是開源框架knot.js的優(yōu)勢都有哪些,小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

本文題目:開源框架knot.js的優(yōu)勢都有哪些
鏈接分享:http://bm7419.com/article18/pcohgp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、App開發(fā)網(wǎng)站策劃、品牌網(wǎng)站制作企業(yè)建站、云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)