三个api
- Redux.createStore //传入reducer创建store
- store.subscribe //订阅store
- store.dispatch //派发action
<!DOCTYPE html><html><head><title>Redux basic example</title><script src="https://unpkg.com/redux@latest/dist/redux.min.js"></script></head><body><div><p>Clicked: <span id="value">0</span> times<button id="increment">+</button><button id="decrement">-</button><button id="incrementIfOdd">Increment if odd</button><button id="incrementAsync">Increment async</button></p></div><script>function counter(state, action) { // reducers :一个接收 state 和 action,并返回新的 state 的函数if (typeof state === 'undefined') {return 0}switch (action.type) {case 'INCREMENT':return state + 1case 'DECREMENT':return state - 1default:return state}}var store = Redux.createStore(counter)store.subscribe(render) // 订阅document.getElementById('increment').addEventListener('click', function () {store.dispatch({ type: 'INCREMENT' }) // store通过dispatch派发action { type: 'INCREMENT' }就是action})document.getElementById('decrement').addEventListener('click', function () {store.dispatch({ type: 'DECREMENT' })})document.getElementById('incrementIfOdd').addEventListener('click', function () {if (store.getState() % 2 !== 0) {store.dispatch({ type: 'INCREMENT' })}})document.getElementById('incrementAsync').addEventListener('click', function () {setTimeout(function () {store.dispatch({ type: 'INCREMENT' })}, 1000)})var valueEl = document.getElementById('value')function render() {valueEl.innerHTML = store.getState().toString()}render()</script></body></html>
createStore接收reducer创建store,
subscribe订阅store
