Redux 初使用

Redux是什麼?

Redux是一個用來管理管理數據狀態和UI狀態的JavaScript應用工具。隨着JavaScript單頁應用(SPA)開發日趨複雜,JavaScript需要管理比任何時候都要多的state(狀態),Redux就是降低管理難度的。(Redux支持React,Angular、jQuery甚至純JavaScript)

看下圖理解一下
在這裏插入圖片描述

再看下官方的圖
在這裏插入圖片描述

React Components就是我們操控的,我們先見到的是Action Creators請求 然後去Store裏查看 用到Reducer去搜索然後拿來使用

爲什麼使用:

  • 組件需要根據狀態發生顯示變化
  • state並不總是以單向的方式線性流動
  • 存在組件需要更新全局狀態
  • 存在組件需要更新另一個組件的狀態
  • 存在狀態以許多不同的方式更新
  • 狀態樹結構複雜
  • 某個狀態需要在全局使用或共享(例如角色權限等信息)

好了現在開始說怎麼使用

寫之前 先安裝一下redux

npm install --save redux

1. 編寫創建store倉庫

在src目錄下創建一個store文件夾,然後在文件夾下創建一個index.js文件。
index.js就是整個項目的store文件,打開文件,編寫下面的代碼。

	import { createStore } from 'redux'  // 引入createStore方法
	const store = createStore()          // 創建數據存儲倉庫  
	export default store                 //暴露出去

這樣就建立好了倉庫,但是現在亂,這時候就需要Reducers。這兩個一定要一起創建出來,這樣倉庫纔不會出現互懟現象。在store文件夾下,新建一個文件reducer.js,然後寫入下面的代碼。

	const defaultState = {}  //默認數據 後面可以根據自己的需求添加數據
	export default (state = defaultState,action)=>{  //就是一個方法函數
	    return state
	}

state: 是整個項目中需要管理的數據信息,這裏我們沒有什麼數據,先用空對象來表示。
這reducer就建立好了,把reducer引入到store中,再創建store時,以參數的形式傳遞給store。

在store下的index裏 加入Reducers.js

	import reducer from './reducer'    
	const store = createStore(reducer) // 把reducer 放到數據存儲倉庫

2. 在store中爲todoList初始化數據

倉庫store和reducer都創建好了,可以初始化一下我們組件中的數據了,在reducer.js文件的defaultState對象中,加入自己想要的數據

	const defaultState = {       //根據自己的需要添加
	    inputValue : 'XXXXXXXX',
	    State_list:[
		        '1 redux的好處',
		        '2 怎麼使用redux'
		    ]
	}
	export default (state = defaultState,action)=>{
	    return state
	}

3. 組件獲得store中的數據

有了store倉庫,也有了數據,那如何獲得stroe中的數據那?你可以在要使用的組件中,先引入store。
我們組件要使用store,就在src/(你的組件).js文件夾中,進行引入。

	import store from './store/index.js'    //可以直接簡寫'./store'

	然後在組件中獲取用到constructor
	constructor(props){
	    super(props)
	    console.log(store.getState())   //獲取數據  我們在控制檯中可以看到
	    this.state=store.getState();  	//記得放到state裏面
	}

拿到數據了 就可以渲染我們的頁面了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章