觀察!
觀察某個值的變化!
觀察到某個值發生變化之後自己做相應的改變!
以上就是我所理解的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至少給了我們一條解決問題的思路。
觀察!
觀察某個值的變化!
觀察到某個值發生變化之後自己做相應的改變!
以上就是我所理解的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至少給了我們一條解決問題的思路。