redux-tookit

store下的index.js

    import {configureStore} from "@reduxjs/toolkit"
    import counterreducer from "./feature/featur"
    export default configureStore({
    reducer:{
        counter:counterreducer
    },
 middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(logger)
})

子倉(cāng)庫(kù)

   import {createSlice} from "@reduxjs/toolkit"
import axios from "axios";
export const conterSlice = createSlice({
    name:"counter",
    initialState : {
        count :1,
        title:"redux tookit",
        arr:[]
    },
    reducers:{   // 創(chuàng)建完reducers回自動(dòng)生成action
        fn (state,{payload}) {
            console.log(payload);
            state.count = state.count + payload.step
        },
        del (state,action) {
            state.count = state.count  - 1
        },
        setArr (state,{payload}) {
            console.log(payload);
            state.arr = payload
        }
    }
})
export const {fn,del,setArr} = conterSlice.actions // 拋出這些action
// tookit 內(nèi)置了thunk
export const getlist = (data)=>{  return (dispatch)=>{
    axios.get("/api/list").then(res=>{
        console.log(res.data);
        dispatch(setArr(data))
    })
}
}



export default conterSlice.reducer

組件

import React , {useEffect} from 'react'
import {useSelector,useDispatch} from "react-redux"
import {fn,del,getlist} from "../../store/feature/featur"
function Exam() {
  const store = useSelector(state=>state.counter)
  const dispatch = useDispatch()
  console.log(store);
  useEffect(()=>{
    dispatch(getlist([1,2,13,4,5]))
  
  },[])
  let fn1 = ()=>{
      dispatch(fn({step:1}))
  }
  return (
    <div>
       <h4>{store.count}</h4>
      <button onClick={fn1}>點(diǎn)擊</button>
    </div>
  )
}

export default Exam
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容