摘要:主要用于構(gòu)建,很多人認(rèn)為是中的視圖。函數(shù)接受另一個(gè)函數(shù)作為參數(shù),返回新生成的對(duì)象的變化,會(huì)導(dǎo)致的變化。用戶無(wú)法直接改變只能觸發(fā)上綁定的事件。表示應(yīng)該要發(fā)生變化了。允許使用方法設(shè)置監(jiān)聽(tīng)函數(shù),一旦發(fā)生變化,就自動(dòng)執(zhí)行這個(gè)函數(shù)。
什么是react
React 是一個(gè)用于構(gòu)建用戶界面的 JAVASCRIPT 庫(kù)。為什么需要redux
React主要用于構(gòu)建UI,很多人認(rèn)為 React 是 MVC 中的 V(視圖)。
react 只涉及 view 層, React 只是 DOM 的一個(gè)抽象層,并不是 Web 應(yīng)用的完整解決方案。有兩個(gè)方面,它沒(méi)涉及。
代碼結(jié)構(gòu)
組件之間通信
而 redux正好能解決這兩件事
redux工作流 1.StoreStore 就是保存數(shù)據(jù)的地方。
import { createStore } from "redux"; const store = createStore(fn); const state = store.getState();
createStore(reduces, globalState)
createStore函數(shù)接受另一個(gè)函數(shù)作為參數(shù),返回新生成的 Store 對(duì)象
State 的變化,會(huì)導(dǎo)致 View 的變化。用戶無(wú)法直接改變State, 只能觸發(fā)上綁定的事件。Action 就是 View 發(fā)出,表示 State 應(yīng)該要發(fā)生變化了。
const action = { type: "ADD_TODO", payload: "Learn Redux" };3.Action Creator
const ADD_TODO = "添加 TODO"; function addTodo(text) { return { type: ADD_TODO, text } } const action = addTodo("Learn Redux");
定義一個(gè)函數(shù)來(lái)生成 Action,這個(gè)函數(shù)就叫 Action Creator。
4.store.dispatch()store.dispatch()是 View 發(fā)出 Action 的唯一方法。表示 State 應(yīng)該要發(fā)生變化了。
import { createStore } from "redux"; const store = createStore(fn); store.dispatch({ type: "ADD_TODO", payload: "Learn Redux" });5.Reducer
Store 收到 Action 以后,必須給出一個(gè)新的 State,這樣 View 才會(huì)發(fā)生變化。這種 State 的計(jì)算過(guò)程就叫做 Reducer。
6.store.subscribe()Store 允許使用store.subscribe方法設(shè)置監(jiān)聽(tīng)函數(shù),一旦 State 發(fā)生變化,就自動(dòng)執(zhí)行這個(gè)函數(shù)。
import { createStore } from "redux"; const store = createStore(reducer); store.subscribe(listener);一個(gè)極簡(jiǎn)的 redux 例子
simplest-redux-examp(https://github.com/jackielii/...
import React, { Component } from "react" import PropTypes from "prop-types" import ReactDOM from "react-dom" import { createStore } from "redux" import { Provider, connect } from "react-redux" // React 組件 class Counter extends Component { render() { const { value, onIncreaseClick } = this.props return (參考{value}) } } // 屬性驗(yàn)證 Counter.propTypes = { value: PropTypes.number.isRequired, onIncreaseClick: PropTypes.func.isRequired } // Action const increaseAction = { type: "increase" } // Reducer 一個(gè)(state, action) => new state function counter(state = { count: 0 }, action) { const count = state.count switch (action.type) { case "increase": return { count: count + 1 } default: return state } } // Store const store = createStore(counter) // Map Redux state to component props // 傳入組件的屬性 function mapStateToProps(state) { return { value: state.count } } // Map Redux actions to component props // 組件需要使用props傳入的來(lái) dispatch function mapDispatchToProps(dispatch) { return { onIncreaseClick: () => dispatch(increaseAction) } } // Connected Component const App = connect( mapStateToProps, mapDispatchToProps )(Counter) ReactDOM.render(, document.getElementById("root") )
Redux 入門教程-阮一峰
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/94152.html
摘要:如何在中使用動(dòng)畫前端掘金本文講一下中動(dòng)畫應(yīng)用的部分。與的快速入門指南推薦前端掘金是非常棒的框架,能夠創(chuàng)建功能強(qiáng)大,動(dòng)態(tài)功能的。自發(fā)布以來(lái),已經(jīng)廣泛應(yīng)用于開(kāi)發(fā)中。 如何在 Angular 中使用動(dòng)畫 - 前端 - 掘金本文講一下Angular中動(dòng)畫應(yīng)用的部分。 首先,Angular本生不提供動(dòng)畫機(jī)制,需要在項(xiàng)目中加入Angular插件模塊ngAnimate才能完成Angular的動(dòng)畫機(jī)制...
摘要:初始值,優(yōu)先級(jí)低于傳給的,如下此時(shí),在后為以格式定義。用于處理同步操作,唯一可以修改的地方。由觸發(fā),可以觸發(fā),可以和服務(wù)器交互,可以獲取全局的數(shù)據(jù)等等。取消注冊(cè),清理和。如果沒(méi)有返回函數(shù),使用會(huì)給予警告注冊(cè)路由表。 前言 dva 首先是一個(gè)基于 redux 和 redux-saga 的數(shù)據(jù)流方案,然后為了簡(jiǎn)化開(kāi)發(fā)體驗(yàn),dva 還額外內(nèi)置了 react-router 和 fetch,所以...
摘要:前端日?qǐng)?bào)精選精讀個(gè)最佳特性翻譯輕量級(jí)函數(shù)式編程第章組合函數(shù)之組件類型寫的姿勢(shì)中文周二放送面試題詳解知乎專欄譯原生值得學(xué)習(xí)嗎答案是肯定的掘金個(gè)超贊的視覺(jué)效果眾成翻譯布局時(shí)常見(jiàn)總結(jié)騰訊前端團(tuán)隊(duì)社區(qū)歸檔打地鼠入門學(xué)習(xí)書籍 2017-08-30 前端日?qǐng)?bào) 精選 精讀《Web fonts: when you need them, when you don’t》10個(gè)最佳ES6特性翻譯 -《Jav...
摘要:到主菜了,先看它的一看,我們應(yīng)該有個(gè)猜測(cè),這貨是個(gè)高階函數(shù)。可能有點(diǎn)繞,但就是這么一個(gè)個(gè)高階函數(shù)組成的,后面會(huì)詳細(xì)說(shuō)。定義了一個(gè)處理函數(shù)和高階函數(shù)執(zhí)行次的方法,這個(gè)方法比上面的復(fù)雜在于它需要檢測(cè)參數(shù)是否訂閱了。 注意:文章很長(zhǎng),只想了解邏輯而不深入的,可以直接跳到總結(jié)部分。 初識(shí) 首先,從它暴露對(duì)外的API開(kāi)始 ReactReduxContext /* 提供了 React.creat...
閱讀 3976·2021-11-18 13:22
閱讀 1813·2021-11-17 09:33
閱讀 2877·2021-09-26 09:46
閱讀 1208·2021-08-21 14:11
閱讀 2884·2019-08-30 15:53
閱讀 2707·2019-08-30 15:52
閱讀 1885·2019-08-30 10:52
閱讀 1517·2019-08-29 15:30