当前位置: 首页 > news >正文

海外社交网站开发期货贵金属网站建设

海外社交网站开发,期货贵金属网站建设,个人开办导航网站需要怎么做,家居网站应该怎么做react之基于reduxjs/toolkit使用react-redux 一、配置基础环境二、使用React Toolkit 创建 counterStore三、为React注入store四、React组件使用store中的数据五、实现效果六、提交action传递参数七、异步状态操作 一、配置基础环境 1.使用cra快速创建一个react项目 npx crea…

react之基于@reduxjs/toolkit使用react-redux

  • 一、配置基础环境
  • 二、使用React Toolkit 创建 counterStore
  • 三、为React注入store
  • 四、React组件使用store中的数据
  • 五、实现效果
  • 六、提交action传递参数
  • 七、异步状态操作

一、配置基础环境

  • 1.使用cra快速创建一个react项目
npx create-react-app react-redux
  • 2.安装@reduxjs/toolkit react-redux
npm i @reduxjs/toolkit react-redux
  • 3.启动项目
npm start
  • 4.创建store文件
    • modules存储子store模块
    • index.js组合modules中所有子模块,并导出store
      在这里插入图片描述

整体路径

在这里插入图片描述

二、使用React Toolkit 创建 counterStore

  • nodules目录下counterStore.js
//从toolkit中引入 createSlice
import { createSlice } from '@reduxjs/toolkit'// 定义数据
const counterStore = createSlice({name: 'counter',//初始化stateinitialState: {count: 0,},//修改状态的方法 同步  支持直接修改reducers: {//加addFn(state) {state.count++},//减delFn(state) {state.count--},},
})//解构出来actionCreater函数
const { addFn, delFn } = counterStore.actions//获取reducer
const reducer = counterStore.reducer//按需导出 actionCreater
export { addFn, delFn }//默认导出reducer
export default reducer
  • store目录下index.js
import { configureStore } from '@reduxjs/toolkit'//引入默认导出的
import counterReducer from './modules/counterStore'//创建根store组合子模块
const store = configureStore({reducer: {counter: counterReducer,},
})//导出
export default store

三、为React注入store

  • 根目录下的index.js
//引入store
import store from './store'
//引入provider
import { Provider } from 'react-redux'const root = ReactDOM.createRoot(document.getElementById('root'))
root.render(<Provider store={store}><App></App></Provider>
)

四、React组件使用store中的数据

  • 根目录下的App.js
//从react-redux中引入useSelector useDispatch
import { useSelector, useDispatch } from 'react-redux'//导入添加 减去方法
import { addFn, delFn } from './store/modules/counterStore'
function App() {//解构const { count } = useSelector((state) => state.counter)//得到dispatch函数const dispatch = useDispatch()return (<div className="App"><button onClick={() => dispatch(delFn())}>-</button>{count}<button onClick={() => dispatch(addFn())}>+</button><ul></ul></div>)
}export default App

五、实现效果

在这里插入图片描述

六、提交action传递参数

在这里插入图片描述

七、异步状态操作

  • 1.modules目录下channelStore.js
//从tookit中引入createSlice
import { createSlice } from '@reduxjs/toolkit'
// 引入axios
import axios from 'axios'
//定义数据
const listStore = createSlice({name: 'list',//初始化initialState: {list: [],},//修改同步方法reducers: {setList(state, action) {state.list = action.payload},},
})//解构出来reducers
const { setList } = listStore.actions
//异步请求方法
const getList = () => {return async (dispatch) => {const res = await axios.get('接口地址')dispatch(setList(res.data.data.channels))}
}//获取reducer
const reducer = listStore.reducer//导出异步方法
export { getList }//默认导出reducer
export default reducer
  • 2.store目录下index.js
import { configureStore } from '@reduxjs/toolkit'//引入默认导出的
import counterReducer from './modules/counterStore'
import listReducer from './modules/channelStore'
//创建根store组合子模块
const store = configureStore({reducer: {counter: counterReducer,list: listReducer,},
})//导出
export default store
  • 3.页面中使用
//从react-redux中引入useSelector useDispatch
import { useSelector, useDispatch } from 'react-redux'
import { useEffect } from 'react'
//导入获取列表异步方法
import { getList } from './store/modules/channelStore'function App() {const dispatch = useDispatch()useEffect(() => {dispatch(getList())}, [dispatch])//解构const { list } = useSelector((state) => state.list)//得到dispatch函数return (<div className="App"><ul>{list.map((item) => (<li key={item.id}>{item.name}</li>))}</ul></div>)
}export default App
http://www.yayakq.cn/news/725157/

相关文章:

  • 已被网站管理员设置拦截wordpress 文件管理插件
  • 网站排名优化原理网页版
  • 公司网站建设建议睢县做网站的公司
  • 电子商务网站开发附件网站添加提醒
  • 知春路网站建设公司网站被入侵后需做的检测(1)
  • 外贸网站的建设阿里云增加网站
  • 汽车类网站外贸移动商城网站开发
  • vps自带ie浏览器不能访问网站学校网站建设情况说明书
  • 购物网站建设方案ppt福建seo关键词优化外包
  • 网站文章被采集什么是同ip网站
  • 上海网站建设微信开发wordpress小工具编辑
  • 怎么注册公司都需要什么手续sem优化策略
  • 网站后台邮箱设置电商怎么做营销推广w
  • 一个人做网站需要多久易企网
  • 国外创意网站设计网站备案 godaddy
  • 武昌做网站公司河南网站建设价格
  • 视差网站h5制作网站公司
  • 购物的网站功能中企动力登录
  • 济南营销型网站中文手机app开发软件
  • 网站域名域名贵阳网站建设有限公司
  • 免费企业网站建设条件智慧团建网页
  • 有了主机和域名后如何做网站o2o网站策划
  • 怎么做商业服务网站怎么用网站做word文件
  • 青海网站制作公司wordpress值得买
  • 百度商桥 手机网站html怎么做网站设计
  • 网站怎么做qq的授权登陆wordpress 公司模板
  • 科技软件公司网站模板鲜花网站源码
  • 浙江企业网站建设百度搜索推广是什么
  • 装饰网站建设运营做网站布为网
  • dedecms怎么部署网站风铃上做的网站发布时号码填写