摘要:中定義來各個要做的事情。代碼定義把封裝成一個方法,這樣用的時候不用每次定義,避免出錯入口文件封裝成方法,方便下面的的訂閱調(diào)用每當(dāng)時,訂閱的函數(shù)就會執(zhí)行現(xiàn)在有機關(guān)槍把。通過的來觸發(fā),中訂閱的事件就會執(zhí)行。觸發(fā),獲取的值。
環(huán)境準(zhǔn)備
為了方便,這里使用create-react-app搭建react環(huán)境
create-react-app mydemo彈出配置
如果需要自定義react的配置,需要運行下面的命令把配置文件彈出來。
npm run eject安裝redux
npm i redux --save簡單理解
redux簡單用法就是通過它的store來訂閱和發(fā)布信息。
通過subscribe來訂閱action,通過dispatch來觸發(fā)action。reducer中定義來各個action要做的事情。
const Add = "addGirl", Remove = "removeGirl"; export function reducer(state = 0, action) { switch (action.type) { case Add: return state + 1; case Remove: return state - 1; default: return 10; } } //action creator,把action封裝成一個方法,這樣用的時候不用每次定義,避免出錯 export function addCreator() { return { type: Add }; } export function removeCreator() { return { type: Remove }; } export function addAsync() { return (dispatch, getState) => { setTimeout(function () { dispatch(addCreator()); }, 1000); } }入口文件index.js
import React from "react"; import ReactDOM from "react-dom"; import "./index.css"; import App from "./App"; import registerServiceWorker from "./registerServiceWorker"; import { createStore } from "redux"; import thunk from "redux-thunk"; import { reducer,addCreator,removeCreaator } from "./index.redux"; import { Provider } from "react-redux" const store = createStore(reducer); function render() { ReactDOM.render(App.js, document.getElementById("root") ); } //封裝成方法,方便下面的store的訂閱調(diào)用 render(); //每當(dāng)dispatch時,訂閱的函數(shù)就會執(zhí)行 store.subscribe(render); registerServiceWorker();
import React, { Component } from "react"; import "./App.css"; class App extends Component { render() { var store=this.props.store; var num=store.getState(); return (); } } export default App;現(xiàn)在有機關(guān)槍{this.props.num}把。
通過store的dispatch來觸發(fā)action,index.js中訂閱的事件就會執(zhí)行。
redux的異步執(zhí)行redux中如果需要執(zhí)行異步操作,需要安裝react-thunk插件
npm i react-thunk --save
同時需要redux插件的applyMiddleware
關(guān)鍵代碼設(shè)置其實很簡單,創(chuàng)建store時,把thunk傳遞給它就行了。
import thunk from "redux-thunk"; const store = createStore(reducer, applyMiddleware(thunk));
在app.js中增加一個觸發(fā)異步操作的按鈕,reducer中已經(jīng)定義了一個異步的方法。
export function addAsync() { return (dispatch, getState) => { setTimeout(function () { dispatch(addCreator()); }, 1000); } }
異步調(diào)用方法會返回一個有兩個參數(shù)的方法,兩個參數(shù)都是函數(shù),第一個是dispatch函數(shù),第二個是getState函數(shù)。
dispatch觸發(fā)action,getState獲取state的值。
在app.js中增加代碼
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/94390.html
摘要:在函數(shù)式編程中數(shù)據(jù)在由純函數(shù)組成的管道中傳遞。函數(shù)式編程中函子是實現(xiàn)了函數(shù)的容器下文中將函子視為范疇,模型可表示如下但是在函數(shù)式編程中要避免使用這種面向?qū)ο蟮木幊谭绞饺《畬ν獗┞读艘粋€的接口也稱為。 showImg(https://segmentfault.com/img/remote/1460000018101204); 該系列會有 3 篇文章,分別介紹什么是函數(shù)式編程、剖析函數(shù)...
摘要:描述這個插件可以讓我們的代碼更加的簡潔和美觀。安裝使用提供了兩個重要的接口使用了這個插件,的和就可以忘記來,它們就用不著了。現(xiàn)在有美女個。 可先查看我的redux簡單入門 react-redux簡介 react-redux是使用redux開發(fā)react時使用的一個插件,另外插一句,redux不是react的產(chǎn)品,vue和angular中也可以使用redux;下面簡單講解,如何使用rea...
摘要:概述之前寫的所有關(guān)于的文章都是純粹的,是和框架無關(guān)環(huán)境無關(guān)的,所以我沒有將和一起講,為的是吧和分開,作為獨立的個體來分析,提現(xiàn)的是一種思想,而不是一個思維定式。而現(xiàn)在我們可以嘗試在中來使用了。 0x000 概述 之前寫的所有關(guān)于redux的文章都是純粹的redux,是和框架無關(guān)、環(huán)境無關(guān)的redux,所以我沒有將redux和react一起講,為的是吧redux和react分開,作為獨立...
摘要:我的入門到放棄之路最近看到很多相關(guān)的問題跟討論,越來越多的小伙伴喜歡這個框架了,同時也在看到了有些入門的小伙伴遇到了各種各樣的問題,本人也是框架使用都一枚,公司是騰訊阿里平安三巨頭合資的一家公司,分別上海深圳杭州北京廣州等多個分部,前端人員 showImg(https://segmentfault.com/img/bVbhonB?w=1278&h=722); 我的react入門到放棄之...
閱讀 3040·2023-04-26 00:49
閱讀 3720·2021-09-29 09:45
閱讀 964·2019-08-29 18:47
閱讀 2738·2019-08-29 18:37
閱讀 2723·2019-08-29 16:37
閱讀 3286·2019-08-29 13:24
閱讀 1773·2019-08-27 10:56
閱讀 2344·2019-08-26 11:42