1.Flux和Redux
1.1 Flux
Flux是一种软件编程的架构思想,强调单项数据流
Flux把应用分为四个部分
View : 视图
Action : 修改store的唯一方式,描述了从数据从应用程序到store的有效信息负载
Dispatcher : 触发器,接收action,执行回调函数(修改store)
Store : 用来存放应用状态,一旦store发生变化会触发页面刷新
1.2Redux
有人说redux是flux架构思想的一种实现。
Redux在flux基础上强调三个基本原则
1.单一数据源 : 整个应用的数据都应该存在一个唯一的store上面
2.State只读 :不要直接尝试去修改store中的state,如果要修改,需要通过action来完成
3.修改store中的state只能通过纯函数来完成 :
reducers,描述了应用如何响应actions的变化,根据不同的action去修改state
2.redux的基本使用
yarn add redux react-redux
import { createStore } from 'redux'
let add = {
type: "ADD",
step: 3
}
let minus = {
type: "MINUS"
function counter(state = 0, action) {
switch (action.type) {
case "ADD":
return state + action.step;
case "MINUS":
return state - 1;
default:
return state;
}
}
let store = createStore(counter, 999)
store.subscribe(() => {
console.log(store.getState(), "xxxxxxxxxxxxxxxx");
render();
})
function render() {
ReactDOM.render(
<App store={store} add={add} minus={minus} />,
document.getElementById('root')
)
}
render();
import React from 'react';
function App(props) {
const { store, add, minus } = props;
return (
<div className="App">
{}
<p>当前数量:{store.getState()}</p>
{}
<button onClick={()=>{store.dispatch(add)}}>点我加</button>
<button onClick={()=>{store.dispatch(minus)}}>点我减</button>
</div>
);
}
export default App;
请继续对照下篇文章——《Redux使用的常见问题》