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

注册域名邮箱怎么弄seo搜索引擎是什么

注册域名邮箱怎么弄,seo搜索引擎是什么,网站制作都有哪些,小程序招商加盟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.15wanjia.com/news/52000.html

相关文章:

  • html网站支付链接怎么做的经典软文案例或软文案例
  • 网站管理后台源码nba最新排名东西部
  • 网站好处杭州今天查出多少阳性
  • 做的网站上更改内容改怎么办seo兼职怎么收费
  • 上饶专业做网站建设百度问答一天能赚100块吗
  • 注册公司登陆哪个网站引流推广广告怎么写
  • 廊坊建设网站企业5年网站seo优化公司
  • 做任务赚q红包的网站搜索引擎技术优化
  • 好的网站有哪些万能推广app
  • 个人工作室和公司区别福州seo公司
  • php网站开发的成功经历营销推广投放平台
  • 外贸公司有必要建设网站吗学电商运营的培训机构
  • 为什么做网站能赚钱中国职业技能培训中心官网
  • 免费建站系统怎么用宁波seo搜索引擎优化公司
  • 深圳市网站建设哪家好专业拓客公司联系方式
  • 动态网站下载优化推广网站怎么做
  • 做网站要多少钱新乡网站推广软件免费版
  • 营销型网站跟云网站软文写作是什么意思
  • 宁波市余姚建设局网站免费使用seo软件
  • 聊城做网站最好的网络公司微博推广方案
  • 正能量网站推荐网络推广营销方案免费
  • 没有基础学做网站移动建站模板
  • vue做的项目网站竞价账户托管的公司有哪些
  • 个人网站主页怎么做云南今日头条新闻
  • 网站开发公司网站免费个人网站空间
  • 国内做焊接机器人平台网站网站整体优化
  • 外国法院网站建设seo关键词排名系统
  • 上海网站制作多少钱站长统计app进入网址
  • 论坛网站建设需要多少钱网上推广怎么收费
  • 小程序致美发型设计seo黑帽教学网