摘要:描述這個插件可以讓我們的代碼更加的簡潔和美觀。安裝使用提供了兩個重要的接口使用了這個插件,的和就可以忘記來,它們就用不著了?,F(xiàn)在有美女個。
可先查看我的redux簡單入門
react-redux簡介react-redux是使用redux開發(fā)react時使用的一個插件,另外插一句,redux不是react的產(chǎn)品,vue和angular中也可以使用redux;下面簡單講解,如何使用react-redux來開發(fā)react。
描述這個插件可以讓我們的redux代碼更加的簡潔和美觀。我假設(shè)你已經(jīng)有一個使用create-react-app創(chuàng)建的一個可以顯示hello world的react環(huán)境,并且已經(jīng)安裝來redux。
注意:如果是剛使用create-react-app創(chuàng)建的,需要運行 npm run eject彈出個性化設(shè)置,這樣就可以自定義配置了。
npm i react-redux --save
使用react-redux提供了兩個重要的接口:Provider、connect,使用了這個插件,react-redux的subscribe和dispatch就可以忘記來,它們就用不著了。
代碼結(jié)構(gòu)//index.js
import React from "react"; import ReactDOM from "react-dom"; import "./index.css"; import App from "./App"; import registerServiceWorker from "./registerServiceWorker"; import { createStore, applyMiddleware } from "redux"; import thunk from "redux-thunk"; import { reducer } from "./index.redux"; import { Provider } from "react-redux" const store = createStore(reducer, applyMiddleware(thunk)); ReactDOM.render(, document.getElementById("root") ); registerServiceWorker();
Provider中應(yīng)用的最外層,把store傳給它,只使用這一次。
//app.js
import React, { Component } from "react"; import { addCreator, removeCreator, addAsync } from "./index.redux"; import { connect } from "react-redux"; class App extends Component { render() { return (); } } //定義把state中哪個屬性放到props中 function mapStateToProps(state) { return { num: state } } //定義把哪些方法放到props中 const actionCreators={ addCreator, removeCreator, addAsync }; //connect其實就是一個高階組件,把app傳進去,返回一個新的app組件 App = connect(mapStateToProps, actionCreators)(App); export default App;現(xiàn)在有美女{this.props.num}個。
connect負責(zé)從外部獲取組件需要的參數(shù)。通過connect定義后,放到props中的屬性和方法就可以直接通過this.props來獲取。
下面是reducer的定義。
//react.redux.js
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; } } export function addCreator() { return { type: Add }; } export function removeCreator() { return { type: Remove }; } export function addAsync() { return (dispatch, getState) => { setTimeout(function () { dispatch(addCreator()); }, 1000); } }使用裝飾器的方式更優(yōu)雅的寫Conect
首先需要安裝babel-plugin-transform-decorators-legacy,并在package.json中配置。
安裝npm i babel-plugin-transform-decorators-legacy --save-dev 這個只是開發(fā)使用,所以安裝到--save-dev
配置配置babel的plugins屬性
"babel": { "presets": [ "react-app" ], "plugins": [ ["transform-decorators-legacy"] ] }修改原來寫法
使用@connect來重新定義,寫到class的上頭即可。
//App.js
@connect((state) => ({ num: state }),{ addCreator, removeCreator, addAsync }) class App extends Component { .....//省略 // function mapStateToProps(state) { // return { num: state } // } // App = connect(mapStateToProps, { addCreator, removeCreator, addAsync })(App);VS Code 裝飾器提示“experimentalDecorators”的解決辦法
點擊Visual Studio Code左下角的配置按鈕(或者文件>首選項>配置,Windows環(huán)境),打開用戶設(shè)置窗口,在搜索框內(nèi)輸入“experimentalDecorators”,發(fā)現(xiàn)竟然能夠找到選項,如下:
"javascript.implicitProjectConfig.experimentalDecorators": false
改成true就可以了。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/94393.html
摘要:具體了解此方法可以請戳這里最后把對象暴露給在主入口進行調(diào)用我們通過提供的頂層組件傳入然后把要展示的寫入頂層組件就行了,提供了整個全局的供所有的子組件進行調(diào)用具體代碼實現(xiàn)請 項目目錄 showImg(https://segmentfault.com/img/bVTGs8?w=214&h=571); 整個項目目錄分為圖中所示: Redux分為{Action,Reducer,Store} 入...
摘要:手挽手帶你學(xué)入門四檔用人話教你,理解架構(gòu),以及運用在中。學(xué)完這一章,你就可以開始自己的項目了。結(jié)合搭建基礎(chǔ)環(huán)境我們上一章講過了的原理,內(nèi)部是有一個的,只有才可以控制它變化。 手挽手帶你學(xué)React入門四檔,用人話教你react-redux,理解redux架構(gòu),以及運用在react中。學(xué)完這一章,你就可以開始自己的react項目了。 視頻教程 上一篇我們自己實現(xiàn)了Redux,這一篇我們來...
摘要:前言一直混跡社區(qū)突然發(fā)現(xiàn)自己收藏了不少好文但是管理起來有點混亂所以將前端主流技術(shù)做了一個書簽整理不求最多最全但求最實用。 前言 一直混跡社區(qū),突然發(fā)現(xiàn)自己收藏了不少好文但是管理起來有點混亂; 所以將前端主流技術(shù)做了一個書簽整理,不求最多最全,但求最實用。 書簽源碼 書簽導(dǎo)入瀏覽器效果截圖showImg(https://segmentfault.com/img/bVbg41b?w=107...
摘要:入門實例前端技術(shù)真是日新月異,搞完不搭配個數(shù)據(jù)流都不好意思了。關(guān)于的用法,這只是基礎(chǔ)入門的部分,還有的多的搞基操作,比如異步數(shù)據(jù)流和配合。 redux —— 入門實例 TodoListshowImg(https://segmentfault.com/img/bVtSeH); Tip 前端技術(shù)真是日新月異,搞完 React 不搭配個數(shù)據(jù)流都不好意思了。滿懷期待的心去翻了翻 flux,簡直...
閱讀 682·2021-11-25 09:43
閱讀 1688·2021-11-18 10:02
閱讀 1067·2021-10-15 09:39
閱讀 1918·2021-10-12 10:18
閱讀 2151·2021-09-22 15:43
閱讀 795·2021-09-22 15:10
閱讀 2110·2019-08-30 15:53
閱讀 1011·2019-08-30 13:00