導航:首頁 > 編程語言 > angularjsmvc原理

angularjsmvc原理

發布時間:2025-04-24 23:28:34

Ⅰ 認識Vue.js+Vue.js的優缺點+和與其他前端框架的區別

首先,我們先了解什麼是MVX框架模式?
MVX框架模式:MVC+MVP+MVVM
1.MVC:Model(模型)+View(視圖)+controller(控制器),主要是基於分層的目的,讓彼此的職責分開。
View通過Controller來和Model聯系,Controller是View和Model的協調者,View和Model不直接聯系,基本聯系都是單向的。
用戶User通過控制器Controller來操作模板Model從而達到視圖View的變化。
2.MVP:是從MVC模式演變而來的,都是通過Controller/Presenter負責邏輯的處理+Model提供數據+View負責顯示。
在MVP中,Presenter完全把View和Model進行了分離,主要的程序邏輯在Presenter里實現。
並且,Presenter和View是沒有直接關聯的,是通過定義好的介面進行交互,從而使得在變更View的時候可以保持Presenter不變。
MVP模式的框架:Riot,js。
3.MVVM:MVVM是把MVC里的Controller和MVP里的Presenter改成了ViewModel。Model+View+ViewModel。
View的變化會自動更新到ViewModel,ViewModel的變化也會自動同步到View上顯示。
這種自動同步是因為ViewModel中的屬性實現了Observer,當屬性變更時都能觸發對應的操作。
MVVM模式的框架有:AngularJS+Vue.js和Knockout+Ember.js後兩種知名度較低以及是早起的框架模式。
Vue.js是什麼?
看到了上面的框架模式介紹,我們可以知道它是屬於MVVM模式的框架。那它有哪些特性呢?
其實Vue.js不是一個框架,因為它只聚焦視圖層,是一個構建數據驅動的Web界面的庫。
Vue.js通過簡單的API(應用程序編程介面)提供高效的數據綁定和靈活的組件系統
Vue.js的特性如下:
1.輕量級的框架
2.雙向數據綁定
3.指令
4.插件化
Vue.js與其他框架的區別?
1.與AngularJS的區別
相同點:
都支持指令:內置指令和自定義指令。
都支持過濾器:內置過濾器和自定義過濾器。
都支持雙向數據綁定。
都不支持低端瀏覽器。
不同點:
1.AngularJS的學習成本高,比如增加了Dependency Injection特性,而Vue.js本身提供的API都比較簡單、直觀。
2.在性能上,AngularJS依賴對數據做臟檢查,所以Watcher越多越慢。
Vue.js使用基於依賴追蹤的觀察並且使用非同步隊列更新。所有的數據都是獨立觸發的。
對於龐大的應用來說,這個優化差異還是比較明顯的。
2.與React的區別
相同點:
React採用特殊的JSX語法,Vue.js在組件開發中也推崇編寫.vue特殊文件格式,對文件內容都有一些約定,兩者都需要編譯後使用。
中心思想相同:一切都是組件,組件實例之間可以嵌套。
都提供合理的鉤子函數,可以讓開發者定製化地去處理需求。
都不內置列數AJAX,Route等功能到核心包,而是以插件的方式載入。
在組件開發中都支持mixins的特性。
不同點:
React依賴Virtual DOM,而Vue.js使用的是DOM模板。React採用的Virtual DOM會對渲染出來的結果做臟檢查。
Vue.js在模板中提供了指令,過濾器等,可以非常方便,快捷地操作DOM。
如何使用Vue.js?
1.安裝
(1)script
如果項目直接通過script載入CDN文件,代碼示例如下:
<script src="http://www..com/vue.min.js"></script>
(2)npm
如果項目給予npm管理依賴,則可以使用npm來安裝Vue,執行如下命令:
$npm i vue --save-dev
(3)bower
如果項目基於bower管理依賴,則可以使用bower來安裝Vue,執行如下命令:
$bower i vue --save-dev

Ⅱ Vue & React & AngularJS 常見問題

臟檢查的全名是臟數據檢查,是 AngularJS 命名的一種機制,檢查數據是否產生變化。臟檢查不直接監聽屬性變化,而是通過定時檢查來監測數據變化,這個檢查被稱為摘要周期。AngularJS 監測對象變化不是通過介面,而是通過復制保存一份數據快照對比變化。在三大框架中,React 和 Vue 也有類似機制,React 每次生成新的 Virtual DOM 進行 diff 操作可以看作臟檢查,Vue 通過 track by 來標記數組元素,減少 DOM 操作。

Vue2 和 Vue3 的 diff 演算法原理是為了復用 DOM,減少性能消耗。Vue2 通過建立映射表,遍歷新節點尋找可復用節點並移動,Vue3 建立映射關系數組,計算最長遞增子序列,保持不變節點不動,移動新節點到正確位置。Vue2 和 Vue3 差異主要在剩餘節點處理方式。

循環中 key 的作用在於提供唯一標識,確保數據結構變化時,DOM 能正確映射到新數據,避免不必要的渲染。

React Hooks 的限制在於防止在循環、條件或嵌套函數中調用,避免數組取值錯位,影響執行。使用 ESLint 插件可預防錯誤。

Vue 和 React 的對比中,Vue 採用 MVVM 模式,提供雙向綁定,單向數據流,簡化業務代碼。React 使用 MVC 模式,V 角色,提供單向數據流。Vue 的雙向綁定通過 getter 和 setter 實現,只在需要時觸發更新,性能較好。Vue 的數據更新機制通過依賴收集,精確更新組件,而 React 則更新整個視圖。在性能上,Vue 的模板語言編譯優化使得渲染性能優於 React。

React Hooks 的限制多於 Vue Hooks,而 Vue 的組合式 API 更偏向於 Vue Hooks,提供更靈活的組件開發方式。React 的寫法相對自由,而 Vue 更注重組件化,提供更傳統的開發方式。

Vue 和 React 的核心差異體現在 API 設計風格、工程化預編譯構建階段以及作者的哲學理念。Vue 採用 AOT(預編譯)優化,而 React 則採用 JIT(即時編譯)優化。在理念上,Vue 強調響應式模型,而 React 更側重於組件化。

JSX 是 React 的一種 JavaScript 語法擴展,用於編寫 JSX 元素,簡化組件的定義和渲染過程。

Ⅲ 2021年的前端框架選擇 Angular vs React vs Vue

每個前端開發人員都聽說過三個用於構建 Web 應用程序的框架:React、Vue.js和Angular。

React 是一個 UI 庫,Angular 是一個成熟的前端框架,而 Vue.js 是一個漸進式框架。

它們幾乎可以互換使用來構建前端應用程序,但它們並非 100% 相同,因此比較它們並了解它們的差異是有意義的。

每個框架都是基於組件的,並允許快速創建 UI 功能。

然而,它們都有不同的結構和架構——所以首先,我們將研究它們的架構差異以了解它們背 後的哲學。

React 不強制執行特定的項目結構,正如您從下面的官方「Hello World」示例中看到的那樣,您只需幾行代碼即可開始使用 React。

React 可以用作 UI 庫來渲染元素,而無需強制執行特定的項目結構,這就是它不是嚴格意義上的框架的原因。

React Elements是 React 應用程序的最小構建塊。它們比 DOM 元素更強大,因為 React DOM 確保在發生變化時有效地更新它們。

組件是更大的構建塊,定義了在整個應用程序中使用的獨立且可重用的部分。它們接受稱為 props 的輸入並生成元素,然後顯示給用戶。

React 基於 JavaScript,但它主要與JSX (JavaScript XML)結合,這是一種語法擴展,允許您創建同時包含 HTML 和 JavaScript 的元素。

您使用 JSX 創建的任何內容也可以使用 React JavaScript API 創建,但大多數開發人員更喜歡 JSX,因為它更直觀。

Vue.js 核心庫只關注視圖層。之所以稱為漸進式框架,是因為您可以使用官方和第三方包(例如Vue Router或Vuex )擴展其功能,將其轉變為實際框架。

雖然 Vue 與 MVVM(Model-View-ViewModel)模式沒有嚴格關聯,但它的設計部分受到了它的啟發。使用 Vue,您將主要在 ViewModel 層上工作,以確保以允許框架呈現最新視圖的方式處理應用程序數據。

Vue 的模板語法讓您可以創建 View 組件,並將熟悉的 HTML 與特殊指令和功能相結合。這種模板語法是首選,即使原始 JavaScript 和 JSX 也受支持。

Vue 中的組件很小,是自包含的,並且可以在整個應用程序中重復使用。帶有擴展名的單文件組件(SFC).vue包含 HTML、CSS 和 JavaScript,因此所有相關代碼都位於一個文件中。

SFC 是在 Vue.js 項目中組織代碼的推薦方式,尤其是大型項目。需要使用 Webpack 或 Browserify 等工具將 SFC 轉換為可用的 JavaScript 代碼。

在本文中,我討論的是 Angular 2,而不是現在稱為 AngularJS 的框架的第一個版本

AngularJS,原始框架,是一個MVC(模型-視圖-控制器)框架。但是在Angular 2 中,與 MV*-patterns 沒有嚴格的關聯,因為它也是基於組件的。

Angular 中的項目被組織成模塊、組件和服務。每個 Angular 應用程序至少有一個根組件和一個根模塊。

Angular 中的每個組件都包含一個模板、一個定義應用程序邏輯的類和元數據(裝飾器)。組件的元數據告訴 Angular 在哪裡可以找到創建和呈現其視圖所需的構建塊。

Angular 模板是用 HTML 編寫的,但也可以包含帶有特殊指令的Angular 模板語法,以輸出反應性數據和呈現多個元素等。

組件使用 Angular 中的服務來委託業務邏輯任務,例如獲取數據或驗證輸入。它們是 Angular 應用程序的獨特部分。雖然 Angular 不強制使用它們,但強烈建議將應用程序構建為一組可以重用的不同服務。

Angular 內置於 TypeScript 中,因此建議使用它以獲得最無縫的體驗,但也支持純 JavaScript。

React 是最受歡迎的 JavaScript 項目之一,在 GitHub 上擁有 16 萬顆星。它由 Facebook 開發和維護,並在他們的許多項目內部使用。此外,根據BuiltWith的使用統計數據,它為超過 200 萬個網站提供支持。

在三個框架中,Vue在 GitHub上的 star 數最多,有 176k。該項目由前 Google 員工 Evan You 開發和領導。據BuiltWith 稱,這是開源社區中一個非常強大的獨立項目,被超過 100 萬個網站使用。

Angular 是由 Google 開發的,但令人驚訝的是它並沒有用於他們的一些旗艦產品,例如搜索或 Youtube。它經常用於企業項目,並基於BuiltWith的數據為超過 97,000 個網站提供支持。

它是三個框架中星數最少的,在 GitHub 上有 68k 星。然而,當從 Angular 1 切換到 Angular 2 時,他們創建了一個全新的代碼庫,而不是繼續AngularJS項目,該項目也有 59k 星。

在開發應用程序時,開源包可以為您節省寶貴的時間。不僅如此,它們通常比定製組件和封裝更好,因為它們經過了實戰測試。

查看可幫助您更輕松地創建新功能的現成組件、主題和其他工具的可用性非常重要。

許多前端應用程序依賴全局狀態管理來存儲信息,例如誰登錄和其他用戶設置。

最流行的 JavaScript 狀態管理項目是Rex。大多數開發人員使用Rex的官方 React 綁定,這些綁定由 Rex 團隊維護。

由於 React 的流行,查找輸入組件和現成的元素非常容易。它們都只是在 Google 或 GitHub 上搜索即可。

React 生態系統還包括React Native,它允許您從用 React 編寫的單個代碼庫構建原生 iOS 和 Android 應用程序。因此,React 也可以成為使用 Web 技術構建移動應用程序的絕佳選擇。

React 是 MERN 堆棧的一部分,其中包含 MongoDB、ExpressJS、React 和 NodeJS。這種組合的偉大之處在於,單一語言——JavaScript——為整個應用程序提供動力。

盡管 Rex 可以在 Vue 中使用,但沒有官方綁定。但這不應該讓您擔心,因為Vuex是專門為 Vue 應用程序製作的官方狀態管理庫。除了與 Vue 很好地集成之外,使用 Vue 的開發人員工具進行調試也很容易。

在 Vue 的早期,很難找到現成的組件。隨著社區的發展,您可以使用各種輸入組件和高級元素來加快開發速度。

對於移動應用程序開發,有一個名為Weex 的新興項目。Weex 由阿里巴巴開發和使用,但不如 React Native 成熟和強大。更重要的是,由於該項目在中國開發和使用較多,因此很難找到英文文檔和解決問題的方法。

Vue 與 Laravel 集成得很好,這就是為什麼它們經常一起使用。Laravel 提供完整的JavaScript 和 CSS 腳手架,以支持在新項目中使用 Vue。

對於 Angular 中的狀態管理,您可以使用NgRx項目。它的靈感來自 Rex,但它是專門為 Angular 創建的。

與 Vue 和 React 的情況一樣,您可以將許多現成的組件導入到您的項目中。與 Angular 略有不同的是,Angular Material項目中有許多官方組件。這是 Google 的一個官方項目,為 Angular 應用程序提供 Material Design 組件。

您可以使用NativeScript在 Angular 中構建跨平台移動應用程序。它也支持 Vue,但 Angular 支持更成熟。

Angular 是著名的 MEAN 堆棧的一部分,它將 Angular 與 MongoDB、ExpressJS 和 NodeJS 相結合。與 MERN 堆棧類似,它的前端和後端都完全依賴 JavaScript。

Angular、React 和 Vue 都可用於開發漸進式 Web 應用程序,也稱為 PWA。

PWA 不是移動應用程序,而是 Web 應用程序,智能手機用戶可以將其添加為主屏幕的快捷方式,並提供類似於原生移動應用程序的外觀和感覺。

您還可以為每個框架找到高級模板和預制應用程序,但 Angular 和 React 比 Vue 提供更多高級選項。

在選擇框架或庫時,您還需要考慮性能。

在許多情況下,您不必擔心性能,尤其是在構建小型項目時。然而,項目的范圍和復雜性越大,性能就會(並且將會)成為一個問題。

重要的是要注意,在 Web 性能方面,開發質量和遵循最佳實踐比框架的選擇更重要。

但由於存在一些性能指標和差異,我將研究它們並解釋每個指標如何影響您的開發工作。

JS 框架基準測試的結果表明,它們在大多數基準測試中都表現得相當好,例如在表中創建或附加行。

正如你在上面看到的,Vue 在選擇行時比 Angular 和 React 慢得多。另一方面,Angular 和 React 在交換行方面效率不高。

這些是渲染基準中唯一的實質性差異 - 在大多數情況下,不會產生明顯的結果。由於選擇行是比交換行更常見的功能,我想說這個基準測試將 Vue 排在第三位,僅次於 Angular 和 React 並列第一。

在內存和啟動時間方面,React 和 Vue 得分很好,但 Angular 稍慢。Angular 啟動一個基本腳本可能需要 150 毫秒,並且需要更多內存才能運行。

谷歌 Chrome 實驗室的Perf Track顯示了來自數千個網站的生產數據。這些統計數據受許多其他因素的影響,而不僅僅是選擇的框架,讓我們看看數字。

與 Angular 相比,Vue 和 React 網站在這個指標上的排名更高,Angular 需要更多時間來啟動並向用戶呈現內容。

在渲染完整頁面的三個框架中,Angular 也是最慢的,只有 27% 的 Angular 網站得分在可接受的范圍內。

對於所有三個框架,超過 80% 的網站都在第一次輸入延遲的可接受范圍內,這顯示了用戶可以與頁面交互所需的時間。

迄今為止,最輕量級的應用程序是使用 Vue 開發的應用程序,68% 的 Vue 應用程序載入的 JavaScript 不到 1MB。另一方面,Angular 和 React 應用程序往往具有更大的代碼大小。

您可以從這些數字中看到趨勢,但您不應該太快得出結論。例如,對於最後一張圖,可以解釋為 Vue 用於開發更輕量級的應用程序,而 Angular 用於更大的項目。

統計數據可以幫助指導您做出正確的決定,但您不能使用它們來證明一個框架比另一個更快或更好。

對於更高級的應用程序,使用的前端框架應該能夠執行一些提高性能並且可以更好地擴展的任務。

兩項關鍵技術是伺服器端渲染 (SSR) 和虛擬化。

React 支持使用官方ReactDOMServer包進行伺服器端渲染。對於虛擬化,您可以使用名為React Virtualized的流行第三方工具。

Vue 中也支持伺服器端渲染以及官方的SSR 包。此外,您還可以使用基於 Vue 構建並支持 SSR的Nuxt.js框架。

不幸的是,Vue 中的虛擬化選項並不是那麼強大。在我看來,Vue Virtual Scroll List是虛擬滾動的最佳解決方案,但它有點問題,不如 React 和 Angular 的選項穩定。

Angular 擁有SSR的官方Angular Universal包,以及用於虛擬滾動和高效渲染大型列表的官方組件。

學習這些框架有多容易?

要回答這個問題,我們需要查看每個框架的復雜性及其引入的概念。

在最基本的用例中,React 是三個框架中最不復雜的。那是因為你只需要導入庫,然後你就可以用幾行代碼開始編寫你的 React 應用程序。

但是除了 Hello World 示例之外,大多數 React 應用程序都是基於組件的,而不僅僅是在頁面上呈現一些元素。

一些開發人員對 React 感到奇怪或困難的一件事是,學習 JSX 是一條單行道。您也可以使用原始 JavaScript,但由於大多數 React 開發人員使用 JSX,學習它幾乎是不可避免的。

這是使 React 的學習曲線變得更陡峭的主要因素,但除此之外,對於了解 JavaScript 並理解 Web 開發概念的開發人員來說,它是一個易於學習的庫。

Vue 的設置比 React 稍微復雜一些。你可以將它用作一個庫來定義你可以在整個 HTML 中使用的組件——但與 React 類似,這不是大多數項目的構建方式。

大多數 Vue 項目都有一個命名的根組件App.vue和一些用於顯示各種內容的子組件。

說到語法,你唯一需要學習的新東西就是 Vue 的模板語法,如果你了解 HTML,這很容易掌握。基本的指令,如v-if和v-for有條件的渲染和列表的渲染,很容易理解即使是初學者。

此外,Vue 的單文件組件將所有前端代碼保存在一個地方,便於組織新項目。

在我看來,Vue 是最容易學習的,因為它的簡單和直觀的語法。

Angular 擁有三者中最復雜的項目結構,而且由於它是一個成熟的前端框架,因此它依賴的概念更多。

除了組件,Angular 還支持模塊和服務。它希望您以特定的方式編寫和設計代碼庫,從而使您的項目在擴展時更易於維護。

至於語法,由於 Angular 最適合與 TypeScript 配合使用,因此在構建 Angular 項目時了解 TypeScript 非常重要。

與 Vue 一樣,您還必須熟悉類似 HTML 的語法,以便您可以開始使用 Angular 編寫新的 UI 功能。

在我看來,Angular 對於普通開發者來說是最難學的,因為它更復雜並且依賴於 TypeScript。

許多開源項目和框架逐漸被遺忘並無人維護。您是否應該擔心我們在這里討論的任何框架?

盡管我們無法完全預測會發生什麼,但正在進行的開發工作是這些項目 健康 狀況的良好指標。人氣和增長也是預測項目壽命的重要指標,所以讓我們來看看每個框架。

React v17.0已經發布,但令人驚訝的是,它沒有為開發人員提供任何新功能。

主要的變化是這個新版本可以更容易地升級 React 本身。您可以將 React 的某些部分從舊版本升級到新版本,而無需升級整個項目。

如果您的應用程序依賴於隨新版本更改或棄用的功能,您可以保留舊版本以保持此功能有效。此更新使 React 成為一個很好的長期選擇,因為它可以更輕松地與新版本保持同步。

React 的每周 npm 下載量自去年以來增長了 44% 。從絕對數量來看,它仍然是三個項目中下載量最大的。

Vue 3 已於2020 年 9 月發布,它解決了 Vue 2 在大型項目中存在的許多嚴重問題。它引入了受React Hooks啟發的Composition API,可以更輕松地跨組件重用邏輯。

整個項目用 TypeScript 重寫,提高了新 Vue 項目對 TypeScript 的支持,同時也使項目更易於維護。

Vue 3 是一個急需的升級,使 Vue 更適合大型項目。

Vue 的每周下載量自去年以來增長了 87%,使 Vue 成為相對而言增長最快的框架。如果 Vue 能夠保持這種增長速度,那麼它肯定會很快超過 Angular。

Angular 最近推出了Ivy 編譯器。它減少了構建時間,優化了資產,允許更快的測試,並總體上改善了開發人員的體驗。

Angular 團隊每年發布兩次重大更新,其中可能包含新功能,或者只是讓框架跟上新瀏覽器版本的速度。

自去年以來,Angular 的每周下載量增長了約 50% ,因此它仍然是一個受歡迎的項目。

Angular、React 和 Vue 都處於非常活躍的開發階段。他們定期發布新版本並維護現有版本。由於在每種情況下當前的支持水平都很高,因此您可以安全地使用這些框架中的任何一個。

需要注意的是,Angular 的增長沒有以前那麼快,而 Vue—— 盡管它是最近開始的——似乎增長了很多。

如前所述,我們無法預測哪些框架會長期保持相關性,但每個項目背後都有一個偉大的社區,並且在不斷發展。

我這篇文章的目標是解釋架構差異,分解每個框架的優點和缺點,並在適用的地方進行比較。

在進入一個新框架之前,有幾件事情需要考慮。

首先,在選擇新技術時,您團隊的經驗可能是一個決定性因素。

同樣,您必須考慮您所在地區可用的人才,以便您可以為您的項目聘請開發人員。

最後,當涉及到項目本身時,復雜性和范圍也會影響您對框架的選擇。

通過考慮所有關鍵差異,我希望您可以決定哪個是最適合您的目標和需求的前端框架。

(本文由聞數起舞翻譯自Aris Pattakos的文章《Angular vs React vs Vue 2021》,轉載請註明出處,原文鏈接:https://athemes.com/guides/angular-vs-react-vs-vue/)

Ⅳ AngularJS開發中,何時應該使用Directive,Controller,Service

AngularJS是一款非常強大的前端MVC框架。同時,它也引入了相當多的概念,這些概念我們可能不是太熟悉。這些概念有:
Directive(指令)
Controller(控制器)
Service (服務)
下面我們逐個來看這些概念,研究一下為什麼它們會像當初設計的那樣強大,同時研究一下為什麼我們要以那樣的方式去使用它們。我們從Service開始。
SERVICES(服務)
如果你已經使用過AngularJS,你可能已經遇到過Service這個概念了,簡而言之,Service就是【單例對象】在AngluarJS 中的一個別名。這些小東西(指單例對象)會被經常傳來傳去,保證你每次訪問到的都是同一個實例,這一點和工廠模式不同。基於這種思想,單例對象讓我們可以 實現一些相當酷的功能,它可以讓很多controller和directive訪問內部的數值。在#angularjs 頻道(譯者註:指的是原作者自己的博客頻道)裡面這也是非常常見的問題之一,那就是在應用中的不同代碼塊之間如何共享數據?我們來看這個問題。

我們首先來創建一個mole(模塊),本文中的所有代碼都會用到這個mole。
var mole = angular.mole( "my.new.mole", [] );

下一步,我們來創建一個新的service(服務)。假設我們上面的這個mole是用來管理圖書的。所以,這里我們來創建一個Book service,然後把一個JSON對象數組添加到這個serice中,這些對象代表很多book數據。
mole.service( 'Book', [ '$rootScope', function( $rootScope ) {
var service = {
books: [
{ title: "Magician", author: "Raymond E. Feist" },
{ title: "The Hobbit", author: "J.R.R Tolkien" }
],

addBook: function ( book ) {
service.books.push( book );
$rootScope.$broadcast( 'books.update' );
}
}
return service;
}]);

這是一個非常簡單的service(有時候這樣就夠你用了)。我們這里正在做的事情就是在管理一個book 數組,同時還帶有一個addBook方法,在有需要的時候可以添加更多書籍。addBook方法還會在application上廣播一個事件,告訴所有正 在使用我們的service的人,數組已經被更新了,從而讓它們自己也做一些刷新操作。現在,我們要做的就是把這個service傳遞給各種 controller、directive、filter,或者其它任何需要它的東西---然後它們就可以訪問service中的這些方法和屬性了。好, 我們來動手。
var ctrl = [ '$scope', 'Book', function( scope, Book ) {
scope.$on( 'books.update', function( event ) {
scope.books = Book.books;
scope.$apply();//注意,原文這里少了這一行
});
scope.books = Book.books;
}];
mole.controller( "books.list", ctrl );

同樣非常簡單。我們上面所做的就是為我們的mole創建了一個新的controller。在創建的時候把$scope provdier和我們自己的Book service傳遞給了它。能明白我們在幹嘛嗎?我們把前面創建的Book service中的books數組賦給了controller內部的局部scope對象。很酷,對吧?
好,這里的核心問題是什麼呢?我們節省了一些時間,並且在controller上創建了一個數組。對---我們確實這樣做了。這樣做確實也為我們節 約了一點時間---但是如果我們要在其它地方處理這些書籍信息應該怎麼辦呢?通過scope來維護數據是非常粗暴的一種方式。由於其它 controller、directive、model的影響,scope很容易就會崩潰或者變臟。它很快就會變成一團亂麻。通過一種集中的途徑(在這里 就是service)來管理所有書籍數據,然後通過某種方式來請求修改它,這樣不僅僅會更加清晰---同時當應用的體積不斷增大的時候也更加容易管理。最 後,它還可以讓你的代碼保持模塊化(這也是Angular很擅長的一件事情)。一旦你在其它項目中需要用到這個service,你沒有必要在scope、 controller、filter等等東西裡面到處去查找相關的代碼,因為所有東西都在service裡面!
好。那麼我們什麼時候應該使用service呢?答案是:無論何時,當我們需要在不同的域中共享數據的時候。另外,多虧了Angular的依賴注入系統,實現這一點是很容易並且很清晰的。

閱讀全文

與angularjsmvc原理相關的資料

熱點內容
導航的o文件是什麼 瀏覽:435
Re舊版本下載 瀏覽:416
電子血壓表怎麼讀數據 瀏覽:610
軟體開發和編程哪個前景好 瀏覽:30
手機保存圖片在相冊里找不到文件 瀏覽:42
xp桌面圖案保存哪個文件夾 瀏覽:136
dnf70版本紅眼 瀏覽:484
越來越不懂兩個版本 瀏覽:258
javabigdecimal位數 瀏覽:316
學好編程需要學哪些東西 瀏覽:186
概預算教程 瀏覽:893
90版本國服第一驅魔 瀏覽:436
手機qq音樂啟動程序 瀏覽:840
口袋妖怪破解版12版本 瀏覽:632
數據研究的崗位有哪些 瀏覽:124
今日頭條網站怎麼改名 瀏覽:663
信口袋app什麼系列口子 瀏覽:374
安微六安在哪個網站查中考成績 瀏覽:121
編程貓下雨怎麼寫 瀏覽:857
ai混合工具怎麼用 瀏覽:916

友情鏈接