【巷子】---flux---【react】


一、什么是Flux

  Flux 是一種架構思想,專門解決軟件的結構問題。它跟MVC 架構是同一類東西,但是更加簡單和清晰。

 

二、flux的基本概念

  

  (1) 、Flux由4部分組成

  1、View:視圖層

  2、Action(動作):視圖發出的消息(比如mouseClick)

  3、Dispatcher( 派發器 ) :用來接收Action、執行回調函數

  4、Store(數據層):用來存放應用的狀態,一旦發生改動,就提醒View更新頁面

 

  

 

 

  (2)、Flux的流程
  1、用戶訪問View

  2、View發送用戶的Action

  3、Dispatcher收到Action,要求Store進行相對應的更新

  4、Store更新后,發出一個“onchange”事件

  5、view接受到“onchange”事件后,更新頁面

 

 

三、store代碼流程

 

 

四、組件中調用Store

import Store from "./store";

 

class App extends Component{

constructor(props){

super(props);

//調用公共數據

this.state = Store.getState();

}

 

五、創建Dispatcher.js

 

安裝flux:cnpm install flux --save-dev

 

(1)在View層的方法中創建Action並傳遞給dispatcher  方法: dispatcher.dispatch(Action)

 

(2)判斷類型Action的type是否相等,如果相等則調用Store的方法進行修改數據(注意:修改數據的方法只能在Store中使用,這樣的方式很類似於后端的MVC模式)

 

六、監聽數據變化

數據發生改變View層頁面進行更新

 

(1)在Store中有提供數據改變的函數,在數據改變的函數中調用事件觸發this.on("事件名稱")

 

(2)同時在Store中在創建一個函數,函數內部進行事件監聽供View層調用,當事件觸發時會調用這個函數,然后我們this.setState進行數據的改變

 

Store中的事件監聽和觸發

 

 

 

組件中調用事件監聽的方法用於改變數據

 

如果還想細化代碼結構我們還可以將Action分離出去(嘗試一下)

 

在項目中Store和dispatcher可以有多個,非常靈活

 

 

除此之外我們的View層既有view層又有controller層所以我們還可以進行再次拆分

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM