回覆列表
  • 1 # 使用者3669018676668

    觀察!

    觀察某個值的變化!

    觀察到某個值發生變化之後自己做相應的改變!

    以上就是我所理解的Reactive的基礎應用思路。

    Observable,這個詞本身就是可觀測的意思。

    應用場景就是解耦合(非同步呼叫實際上就是解耦合的一種操作)

    A發生改變時,B需要同時改變。

    不用RX,那麼就必須要A去呼叫B的某個update函式

    A.js中需要這樣寫程式碼

    於是A和B程式碼就耦合在一起了。如果A發生改變,C,D,E,F都需同時改變。就要這樣寫了

    而我並不希望A知道BCDEF的存在。我只想這樣寫程式碼

    我需要notifyall滿足以下條件,

    第一,不需知道BCDEF的存在

    第二,執行時間最小,並且不用等待BCDEF的更新完成,直接返回。

    應用RX.js就能夠滿足以上兩點

    BCDEFF中程式碼只要呼叫Observable相關函式,去觀察a的變化訊息就可以了。

    於是在整個設計中,BCDEF知道A的存在,但A不知道BCDEF的存在。

    簡單的說,就是BCDEF在觀察A的變化,並對自己做出相應的改變。

    從耦合的角度來說,A和BCDEF是松耦合,A程式碼隨便改,不會影響到BCDEF的程式碼。BCDEF的程式碼隨便改,不會影響到A程式碼。

    兩者之間的互相通訊是透過一個第三者來操作的,也就是RX,並透過非同步程式碼來實現的。這就很好的實現了程式碼的隔離效果。

    當然RX.js的應用絕不止這點,但這是最基礎的概念。很多時候,我們寫工程化的程式碼,最希望的就自己的程式碼不要被迫改動,做好程式碼隔離,做好包隔離。RX至少給了我們一條解決問題的思路。

  • 中秋節和大豐收的關聯?
  • 如果皇家馬德里參加2018俄羅斯世界盃,奪冠機率有多少?為什麼?