Vue2里對應Angular2的service的部分是什麼?是plugin嗎?

最近公司要從ng1轉vue2,我angular2比較熟,所以想對照著問一下這種單例服務在vue2里對應的是哪個部分,比如我要在裡面寫一些公用的從server取json數據並返回的函數,然後在其他component裡面調用這些函數。


不要照搬。

在很多非ng體系里,是沒有很明確的service這種說法的。你可以考慮一下,你原先的service是在幹什麼:

- 是純粹的資源請求包裝嗎?

- 是對數據模型有更高的抽象嗎?

- 是做一些轉發的事情嗎?

針對不同的需求,這部分是要轉化成不同的東西的。如果僅僅是資源請求的包裝,可以搞這樣的模塊,裡面包裝資源的請求,搞成單例形式,可以是單個函數的粒度,也可以某個業務模塊再搞個bundle,直接讓上層業務import,注意,沒有依賴注入這概念了。

如果是更複雜的場景,可能需要用到vuex,或者甚至rxjs之類東西。


自行封裝


service應該是後端的概念,跟業務介面和業務邏輯流程相關的模塊,好的前端分離應該是不需要在前端去考慮service的。

我所理解的,vuejs和ng有一個很明顯的區別是,vuejs的思想是做一個純前端的框架,而ng是想直接在前端利用MVC模型將前後端一體化,這也導致兩個框架在定義一些組件有所同,也有所不同,比如,controller,service在vuejs是不存在的,因為它就是個view,基於MVVM的view(front end)!即使有vuex,我理解的,如果存在後端,它也僅僅是一個跟後端對接的管道(官方的demo也是將API放在vuex里處理的),將後端的數據作為前端組件的狀態。

所以,我認為吧,如果用vuejs的話,就把它當做view,不要考慮service啦。如果一定要考慮的話,vuex是一個可以考慮的對象,只是我覺得站在service的角度,vuex是比較尷尬的。

以上


vuex


我的理解 就一個單例

你想怎麼做 就怎麼做 我之前用過做數據存儲 類似於作為一個 store

另外 只不過在ng中 你可以作為依賴注入進去


推薦閱讀:

vue2如何在嵌套組件中使用sync?
vue生命周期鉤子該怎麼用?
請問vue組件如何reload或者說vue-router如何刷新當前的route??
Vue剛出不久,Vuex 就出來了,想請教下Vuex做了什麼事情?

TAG:前端開發 | Vuejs |