React中react-redux的基本使用

简介: React中react-redux的基本使用

第一步:安装redux插件  npm i react-redux@7

创建store文件,定义数据、以及操作数据方法,并导出

import {createStore} from "redux" //引入 createStore
const rendues=(state,actions)=>{
    if(!state){//初始数据
        return{
            num:1
        }
    }
    const {type,payload}=actions
    switch(type){      //定义方法
        case "Add-num":
            let nums=state.num
            nums+=1
            state.num=nums
            console.log('state', state)
            return {...state}
            break;
        default:
            return state
            break;
    }
}
const score=createStore(rendues)
export default score

App.js页面

import React, { Suspense } from "react"
import './App.css';
import { Provider } from "react-redux"
import { BrowserRouter, Route, Routes, useNavigate } from "react-router-dom"
import Errcon from './errcon';
import Loading from "./Loading";
import score from "./store/one1/index";
const Main = React.lazy(() => import("./views/one1/main"))
function App() {
  // const Navigate = useNavigate()
  return (
    <div>
      <Suspense fallback={<Loading />}>
        <Provider store={score}>
          <BrowserRouter>
            <Routes>
              <Route path='/' element={<Main />}></Route>
              <Route path='/err' element={<Errcon />}></Route>
              {/* <Route path="*" element={<Navigate to="/err" replace={true}/>} />   */}
            </Routes>
          </BrowserRouter>
        </Provider>
      </Suspense>
    </div>
  );
}
export default App;

该代码中:

Suspense用于页面的懒加载,结合react中的lazy属性一起使用。

 Provider  包裹在根组件外层,使所有的子组件都可以拿到state

子页面

import React, { useState } from 'react'
import "../css/main.css"
import { connect } from "react-redux"
function Main(props) {
    const con=props.count
    console.log('con', con)
    console.log('props', props)
    const addnum = () => {
        props.add();
        console.log('conss', props.count);
      };
    return (
        <div className='main'>
            <h2>main</h2>
            <p>{con.num}</p>
            <button onClick={addnum}>添加</button>-
            <button>减少</button>
        </div>
    )
}
const mapStateToProps  = (state) => {
    return {
        count: state
    }
}
const mapDispatchToProps  = (dispatch ) => {
    return {
        add: () =>dispatch ({ type: "Add-num" })
    }
}
export default connect(mapStateToProps , mapDispatchToProps )(Main)
相关文章
|
2月前
|
存储 前端开发 JavaScript
第三十章 React的路由基本使用
第三十章 React的路由基本使用
|
10月前
|
JavaScript 前端开发 API
【React全家桶】React-Redux
【React全家桶】React-Redux
50 0
|
5天前
|
前端开发 JavaScript API
React小记(四)_路由的基本使用
React小记(四)_路由的基本使用
13 1
|
2月前
|
前端开发
React createContext 与 useContext 的基本使用
React createContext 与 useContext 的基本使用
79 0
|
9月前
|
存储 前端开发 JavaScript
React的诱惑: React-Redux-三大原则和React-Redux-基本使用、优化、综合运用、其他组件使用
React的诱惑: React-Redux-三大原则和React-Redux-基本使用、优化、综合运用、其他组件使用
25 1
|
9月前
|
监控 JavaScript 中间件
React-Redux-DevTools和React-Redux优化
React-Redux-DevTools和React-Redux优化
48 0
|
11月前
|
前端开发
React createContext 与 useContext 的基本使用
React createContext 与 useContext 的基本使用
50 0
|
11月前
|
存储 JavaScript 前端开发
【React】redux数据持久化存储(react-redux、redux-RTK)
【React】redux数据持久化存储(react-redux、redux-RTK)
210 0
|
11月前
|
前端开发
前端学习笔记202305学习笔记第二十九天-React keep alive原理之2
前端学习笔记202305学习笔记第二十九天-React keep alive原理之2
47 0
|
11月前
|
前端开发
前端学习笔记202306学习笔记第四十八天-react-admin marmelab之8
前端学习笔记202306学习笔记第四十八天-react-admin marmelab之7
34 0