zoukankan      html  css  js  c++  java
  • Redux -- Redux 初识 Store、配合 redux 实现状态管理

    Redux 初识 Store、配合 redux 实现状态管理

    • redux官方文档
    • 安装所依赖的模块(公用的):cnpm i redux
    • 安装所依赖的模块(在react中使用):cnpm i redux react-redux
    • 安装所依赖的模块(提供中间件,本节内容选它):cnpm i redux react-redux redux-thunk
    • Store 就是保存数据的地方,可以把它看成一个容器,整个应用只能有一个 Store

    1、根组件App.js里,用一个容器把根组件包裹起来

    • 先引入:import {Provider} from 'react-redux';
    • 使用 Provider 包含所有组件
    • React-Redux 提供 Provider 组件,可以让容器组件拿到 state。 所以,这里的 Provider 就拿到了根组件的全部 state
    • 创建 store,参考redux官方文档
    • createStore 相关参数
    import React from 'react';
    import logo from './logo.svg';
    import './App.css';
    import Posts from "./components/Posts";
    import PostForm from "./components/PostForm";
    import {Provider} from 'react-redux';
    import {createStore,applyMiddleware} from 'redux';
    
    
    //创建store并在上头引入
    const store = createStore(() => [],{},applyMiddleware())
    
    function App() {
      return (
          //使用Provider
          <Provider store={store}>
              <div className="App">
                  <header className="App-header">
                      <img src={logo} className="App-logo" alt="logo" />
                      <p>
                          Edit <code>src/App.js</code> and save to reload.
                      </p>
                      <a
                          className="App-link"
                          href="https://reactjs.org"
                          target="_blank"
                          rel="noopener noreferrer"
                      >
                          Learn React
                      </a>
                  </header>
                  <PostForm/> {/*使用 */}
                  <Posts/>  {/*使用 */}
              </div>
          </Provider>
      );
    }
    
    export default App;
    

    2、代码抽离

    • 在 src 下新建 store.js文件
    • 将App.js 里的某些东西剪切过来
    • 引入thunk 到store.js
    • 在App.js里避免报错,引入store
    //App.js里面引入
    import {store} from './store';
    
    查看代码
      
    //store.js里
    import {createStore,applyMiddleware} from 'redux';
    import thunk from 'redux-thunk';
    

    const initialState = {};
    const middleware = [thunk];

    //创建Store并在上头引入
    export const store = createStore(() => [],initialState,applyMiddleware(...middleware))

  • 相关阅读:
    【YbtOJ#20068】连通子图
    【YbtOJ#20067】糖果分配
    【GMOJ6801】模拟patrick
    【GMOJ6800】模拟spongebob
    【洛谷P4449】于神之怒加强版
    【洛谷P3601】签到题
    【洛谷P2408】不同子串个数
    【洛谷P3809】【模板】后缀排序
    【JZOJ1753】锻炼身体
    【GMOJ1164】求和
  • 原文地址:https://www.cnblogs.com/hefeifei/p/11859360.html
Copyright © 2011-2022 走看看