redux

store 文件夹下:

  index.js 文件

import reducer from './reducer'
import { createStore } from 'redux'

const store=createStore(reducer)

export default store
 
  reducer.js 文件
 
//定义一个默认状态
const defaultState={
    msg:'你好世界'
}

//导出一个函数
export default (state=defaultState,action)=> {
    let newState=JSON.parse(JSON.stringify(state))
   
    switch(action.type){
        case 'changeMsg':
            newState.msg=action.value
            break;
        default:
            break;
    }


    return newState
}
 
// 使用
 
import {connect} from 'react-redux'

function App(props) {

  return (
   <>
      <div>redux: {props.msg}</div>
      <button onClick={props.changeMsg}> 点击修改redux</button>
   </>
  )
}


const mapStateToProps=(state)=>{
  return {
    msg:state.msg
  }
}

const mapDispatchToProps=(dispatch)=>{
  return{
    changeMsg(){
      const action ={type:'changeMsg',value:'hello world'}
      dispatch(action)
    }
  }
}


export default connect(mapStateToProps,mapDispatchToProps)(App)


//重要 在主入口文件中挂载
  
import {Provider} from 'react-redux'
import store from './store'
 
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <Provider store={store}>
    <App />
  </Provider>
);
 
 
 
 
 
 
 
 
posted @   方方面  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示