Backbone.js為Web應(yīng)用程序提供了一種結(jié)構(gòu),允許分離業(yè)務(wù)邏輯和用戶界面邏輯。 在本章中,我們將討論Backbone.js應(yīng)用程序的架構(gòu)風(fēng)格,以實(shí)現(xiàn)用戶界面。 以下daigram顯示了Backbone.js的架構(gòu):
Backbone.js的架構(gòu)包含以下模塊:
HTTP客戶端以請(qǐng)求消息的形式向服務(wù)器發(fā)送HTTP請(qǐng)求,其中web瀏覽器,搜索引擎等等作為HTTP客戶端。 用戶使用HTTP請(qǐng)求協(xié)議請(qǐng)求文件,例如文檔,圖像等。 在上面的示例中,您可以看到HTTP客戶端使用路由器發(fā)送客戶端請(qǐng)求。
Router
它用于路由客戶端應(yīng)用程序,并使用URL將它們連接到操作和事件。 它是應(yīng)用程序?qū)ο蟮腢RL表示。 URL由用戶手動(dòng)更改。 URL由骨干使用,使得它可以理解要發(fā)送或呈現(xiàn)給用戶的什么應(yīng)用程序狀態(tài)。 路由器是一種可以復(fù)制URL到達(dá)視圖的機(jī)制。 當(dāng)應(yīng)用程序中的重要位置的Web應(yīng)用程序提供可鏈接,可標(biāo)記和可共享的URL時(shí),需要路由器。
Backbone.js視圖負(fù)責(zé)從我們的應(yīng)用程序顯示什么和什么,他們不包含應(yīng)用程序的HTML標(biāo)記。 它指定了向用戶呈現(xiàn)模型數(shù)據(jù)背后的想法。 視圖用于反映“您的數(shù)據(jù)模型的外觀”。 視圖類不知道關(guān)于HTML和CSS的任何內(nèi)容,并且當(dāng)模型更改而不重新加載整個(gè)頁(yè)面時(shí),每個(gè)視圖都可以單獨(dú)更新。 它表示DOM中UI的邏輯塊。
事件是應(yīng)用程序的主要部分。 它將用戶的自定義事件綁定到應(yīng)用程序。 它們可以混合到任何對(duì)象中,并且能夠綁定和觸發(fā)自定義事件。 您可以使用所需的名稱綁定自定義事件。 通常,事件與其程序流同步處理。 在上述架構(gòu)中,您可以看到事件何時(shí)發(fā)生,它通過(guò)使用視圖來(lái)表示模型的數(shù)據(jù)。
它是JavaScript應(yīng)用程序檢索和填充數(shù)據(jù)的核心。 模型包含應(yīng)用程序的數(shù)據(jù)和數(shù)據(jù)的邏輯,并且表示框架中的基本數(shù)據(jù)對(duì)象。 模型表示具有一些業(yè)務(wù)邏輯和業(yè)務(wù)驗(yàn)證的業(yè)務(wù)實(shí)體。 它主要用于數(shù)據(jù)存儲(chǔ)和業(yè)務(wù)邏輯。 它可以從數(shù)據(jù)存儲(chǔ)中檢索和保存。 模型從使用路由器的視圖傳遞的事件獲取HTTP請(qǐng)求,并同步數(shù)據(jù)庫(kù)中的數(shù)據(jù)并將響應(yīng)發(fā)送回客戶端。
它是從服務(wù)器設(shè)置到數(shù)據(jù)庫(kù)的連接,并包含從客戶端請(qǐng)求的信息。 Backbone.js架構(gòu)的流程可以描述如下所示的步驟:
用戶使用路由器請(qǐng)求數(shù)據(jù),它使用URL將應(yīng)用程序路由到事件。
視圖向用戶表示模型的數(shù)據(jù)。
模型和集合通過(guò)綁定自定義事件來(lái)檢索和填充數(shù)據(jù)庫(kù)中的數(shù)據(jù)。
更多建議: