摘要:描述和之間沒(méi)有關(guān)系。但是還是比較適合和搭配的,因?yàn)樵试S你以的形式來(lái)描述界面,而非常擅長(zhǎng)控制的變化。應(yīng)用中應(yīng)有且僅有一個(gè)。只需要在渲染根組件時(shí)使用即可。創(chuàng)建上一篇開(kāi)發(fā)教程九基礎(chǔ)
描述
Redux 和 React 之間沒(méi)有關(guān)系。Redux 可以搭配 React、Angular 甚至純 JS。但是 Redux 還是比較適合和 React 搭配的,因?yàn)?React 允許你以 state 的形式來(lái)描述界面,而 Redux 非常擅長(zhǎng)控制 state 的變化。
Redux 和 React 的結(jié)合需要用到 redux-react 這個(gè)庫(kù)
案例說(shuō)明 目錄├── README.md ├── index.js ├── action │ └── home.js │ └── about.js ├── actionType │ ├── index.js ├── reducer │ └── home.js │ └── about.js │ └── index.js └── view └── Home.jsx └── About.jsxActionType
拋出兩個(gè)type常量
export const SET_AGE = "SET_AGE" export const SET_NAME = "SET_NAME"Action
創(chuàng)建動(dòng)作
//home.js import {SET_NAME, SET_AGE} from "../actionType" export function set_age (age) { return { type: SET_AGE, age } } export function set_name (name) { return { type: SET_AGE, name } } //about.js同上,就是一個(gè)模擬,可以寫不同的數(shù)據(jù)reducer規(guī)則
//reducer/home.js import {SET_NAME, SET_AGE} from "../ActionType" const initialState = { name: "劉宇", age: 100 } export default (state = initialState, action) => { switch (action.type) { case SET_NAME: return Object.assign({}, state, { name: action.name }) case SET_AGE: return Object.assign({}, state, { age: action.age }) default: return state } } //reducer/about.js 同上寫法可自定義 //reducer/index.js import {combineReducers} from "redux" import home from "./home" import about from "./about" export default combineReducers( { home, about } )view
bindActionCreators:把 action creators 轉(zhuǎn)成擁有同名 keys 的對(duì)象,但使用 dispatch 把每個(gè) action creator 包圍起來(lái),這樣可以直接調(diào)用它們。
connect:連接 React 組件與 Redux store。
import React, { Component } from "react"; import * as pageActions from "../../action" import {bindActionCreators} from "redux" import {connect} from "react-redux" class Inbox extends Component { constructor (props) { super(props) console.log(this.props) } render() { return (index.jsindex) } } function mapStateToProps(state) { return { pageState: state.home } } function mapDispatchToProps(dispatch) { return { pageActions: bindActionCreators(pageActions, dispatch) } } export default connect( mapStateToProps, mapDispatchToProps )(Inbox) // export default Inbox;
將react和redux結(jié)合
createStore:創(chuàng)建一個(gè) Redux store 來(lái)以存放應(yīng)用中所有的 state。應(yīng)用中應(yīng)有且僅有一個(gè) store。
:是由 React Redux 提供的高階組件,用來(lái)讓你將 Redux 綁定到 React,讓所有容器組件都可以訪問(wèn) store,而不必顯示地傳遞它。只需要在渲染根組件時(shí)使用即可。
import React from "react"; import ReactDOM from "react-dom"; import {createStore} from "redux" import { BrowserRouter as Router, Route, Link, Switch, Redirect } from "react-router-dom" import {Provider} from "react-redux" import Home from "./view/Inbox" import About from "./view/About" import rootReducer from "./Reducer" //創(chuàng)建store const store = createStore(rootReducer) const BasicExample = () => () ReactDOM.render( , document.getElementById("root") );
上一篇:react開(kāi)發(fā)教程(九)redux基礎(chǔ)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/90161.html
摘要:描述和之間沒(méi)有關(guān)系。但是還是比較適合和搭配的,因?yàn)樵试S你以的形式來(lái)描述界面,而非常擅長(zhǎng)控制的變化。應(yīng)用中應(yīng)有且僅有一個(gè)。只需要在渲染根組件時(shí)使用即可。創(chuàng)建上一篇開(kāi)發(fā)教程九基礎(chǔ) 描述 Redux 和 React 之間沒(méi)有關(guān)系。Redux 可以搭配 React、Angular 甚至純 JS。但是 Redux 還是比較適合和 React 搭配的,因?yàn)?React 允許你以 state 的形式...
摘要:案例代碼定義計(jì)算規(guī)則,即個(gè)商品價(jià)值戀人結(jié)算完成,當(dāng)前購(gòu)物車為空單身狗根據(jù)計(jì)算規(guī)則生成定義數(shù)據(jù)即變化之后的派發(fā)規(guī)則觸發(fā)數(shù)據(jù)變化上一篇開(kāi)發(fā)教程八組件通信下一篇開(kāi)發(fā)教程十結(jié)合 Readux基礎(chǔ) 什么是redux? 簡(jiǎn)單點(diǎn)回答就是,一個(gè)管理數(shù)據(jù)的全局對(duì)象,但是它有單一狀態(tài)樹(shù)的概念,所謂的單一狀態(tài)樹(shù),就是指所有的 state都以一個(gè)對(duì)象樹(shù)的形式儲(chǔ)存在一個(gè)單一的 store 中。 頁(yè)面中的所有狀...
摘要:前端每周清單半年盤點(diǎn)之與篇前端每周清單專注前端領(lǐng)域內(nèi)容,以對(duì)外文資料的搜集為主,幫助開(kāi)發(fā)者了解一周前端熱點(diǎn)分為新聞熱點(diǎn)開(kāi)發(fā)教程工程實(shí)踐深度閱讀開(kāi)源項(xiàng)目巔峰人生等欄目。與求同存異近日,宣布將的構(gòu)建工具由遷移到,引發(fā)了很多開(kāi)發(fā)者的討論。 前端每周清單半年盤點(diǎn)之 React 與 ReactNative 篇 前端每周清單專注前端領(lǐng)域內(nèi)容,以對(duì)外文資料的搜集為主,幫助開(kāi)發(fā)者了解一周前端熱點(diǎn);分為...
閱讀 2241·2021-11-23 09:51
閱讀 1073·2021-11-22 15:35
閱讀 4831·2021-11-22 09:34
閱讀 1597·2021-10-08 10:13
閱讀 3018·2021-07-22 17:35
閱讀 2520·2019-08-30 15:56
閱讀 3079·2019-08-29 18:44
閱讀 3089·2019-08-29 15:32