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

外贸网站建设公司渠道建设一家网站多少钱

外贸网站建设公司渠道,建设一家网站多少钱,wordpress注册审批,公司网站制作网络公司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/105281/

相关文章:

  • 推广一个网站需要什么机械制造设备类企业网站织梦模板
  • 长沙商城网站开发深圳网络推广公司
  • 郴州网站建设较好的公司做个营销型网站设计
  • 牟平网站建设专业网站建设模块维护
  • 杭州专业网站排名优化搜索排名提升
  • 珠海网站建设公司电话免费上传图片的网址
  • 聊城网站建设2016网站设计欣赏
  • 同城型网站开发wordpress 主题无法更换
  • 沈阳网站建设建设公司手机网站asp
  • 学院的网站怎么做2018年政务公开与网站建设总结
  • 珠海建设企业网站客源汇软件效果怎么样
  • 快速开租建站嘉定网站建设网页制作
  • 东莞公司网站建设公司网站建设服务便宜
  • 城乡建设部网站造价工程师查询做公益网站又什么要求
  • 网站怎样优化seo精品外贸网站 dedecms
  • 网站建设主免费制作h5页面的工具
  • 网页空间网站东莞中高端网站建设
  • 重庆维力安网站建设wordpress做表格查询
  • 张店免费做网站旅游网站建设的参考文献
  • 贞丰县住房和城乡建设局网站佛山新网站建设案例
  • 网站建设公司优惠中微信小程序制作多少钱
  • 深圳整站优化wordpress 搬家后图片不显示
  • 个人网站平台昆明seo网站
  • 专业做网站联系电话做网站的流程图
  • 网站建设与开发 期末作品免费在线自助建站
  • 长春做网站的公司哪家好wordpress做留言板
  • 手机上怎么做网站网站谷歌地图提交
  • 响应式网站设计网站设计价格
  • 做海报的素材那个网站比较好wordpress 被挂
  • php网站开发软件是什么免费网站在哪里申请