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

站长工具同大全站wordpress 显示代码

站长工具同大全站,wordpress 显示代码,网站备案修改,南京快速建站模板下载一、Redux 集中状态管理工具#xff0c;不需要react即可使用#xff0c;每个store的数据都是独立于组件之外的 vue小链接#xff1a;vuex/pinia 基本使用 Redux将数据修改流程分成三个概念#xff0c;state、action和reducer state - 一个对象 存放我们管理的数据状态 a…一、Redux 集中状态管理工具不需要react即可使用每个store的数据都是独立于组件之外的 vue小链接vuex/pinia 基本使用 Redux将数据修改流程分成三个概念state、action和reducer state - 一个对象 存放我们管理的数据状态 action - 一个对象 描述你如何修改数据 reducer - 一个函数 根据action的描述生成新的state button iddecrement-/button span idcount0/span button idincrement/buttonscript srchttps://unpkg.com/reduxlatest/dist/redux.min.js/scriptscript// 1. 定义reducer函数 // 作用: 根据不同的action对象返回不同的新的state// state: 管理的数据初始状态// action: 对象 type 标记当前想要做什么样的修改function reducer (state { count: 0 }, action) {// 数据不可变基于原始状态生成一个新的状态 所以要返回新对象if (action.type INCREMENT) {return { count: state.count 1 }}if (action.type DECREMENT) {return { count: state.count - 1 }}return state}// 2. 使用reducer函数生成store实例const store Redux.createStore(reducer)// 3. 通过store实例的subscribe订阅数据变化// 回调函数可以在每次state发生变化的时候自动执行store.subscribe(() {console.log(state变化了, store.getState())document.getElementById(count).innerText store.getState().count})// 4. 通过store实例的dispatch函数提交action更改状态 const inBtn document.getElementById(increment)inBtn.addEventListener(click, () {// 增store.dispatch({type: INCREMENT})})const dBtn document.getElementById(decrement)dBtn.addEventListener(click, () {// 减store.dispatch({type: DECREMENT})})// 5. 通过store实例的getState方法获取最新状态更新到视图中/script react中使用redux 相关工具 Redux Toolkit 简化redux书写逻辑 react-redux 链接Redux和React的中间件 npm i reduxjs/toolkit react-redux 安装成功 目录创建 创建src/storemodules存放子模块 counterStore.js //1 导入并创建store import {createSlice} from reduxjs/toolkitconst counterStore createSlice({name:counter,// 初始状态initialState:{count:0},// 更新状态的方法reducers:{inscrement(state){state.count},descrement(state){state.count --}} })const {inscrement, descrement} counterStore.actions const reducer counterStore.reducerexport{inscrement,descrement }export default reducer store/index.js 集成store/modules中所有子模块 import { configureStore } from reduxjs/toolkit; import counterReducer from ./modules/counterStore// 将子模块中的所有store合成一个根store方便访问 const store configureStore({reducer:{counter:counterReducer,} })export default store src/index.js import React from react; import ReactDOM from react-dom/client; import App from ./App; import store from ./store import { Provider } from react-redux;const root ReactDOM.createRoot(document.getElementById(root)); root.render(// 通过react-redux提供的Provider 给组件注入store 使得redux定义的store能够被react组件使用Provider store{store}App //Provider ); App.js useDispatch() 通过这个来派发reducer修改状态 import { useSelector, useDispatch } from react-redux; import {inscrement, descrement} from ./store/modules/counterStore function App() {const { count } useSelector(state state.counter)const dispatch useDispatch()return (div classNameAppbutton onClick{() dispatch(inscrement())}/button{count}button onClick{() dispatch(descrement())}-/button/div); }export default App; 然后就完成了 进阶版-提交action时传参 counterStore.js 增加了一个addToNum函数 //1 导入并创建store import {createSlice} from reduxjs/toolkitconst counterStore createSlice({name:counter,// 初始状态initialState:{count:0},// 更新状态的方法reducers:{inscrement(state){state.count},descrement(state){state.count --},addToNum(state, action){// dispatch调用该方法时传入的参数就存放在action.payloadstate.count action.payload}} })const {inscrement, descrement, addToNum} counterStore.actions const reducer counterStore.reducerexport{inscrement,descrement,addToNum }export default reducer App.js 增加了两个值传入不同参数 import { useSelector, useDispatch } from react-redux; import {inscrement, descrement, addToNum} from ./store/modules/counterStore function App() {const { count } useSelector(state state.counter)const dispatch useDispatch()return (div classNameAppbutton onClick{() dispatch(inscrement())}/button{count}button onClick{() dispatch(descrement())}-/buttonbutton onClick{() dispatch(addToNum(10))} 10/buttonbutton onClick{() dispatch(addToNum(-10))}- 10/button/div); }export default App;再进阶版-异步状态操作 channelStore.js import {createSlice} from reduxjs/toolkit import axios from axiosconst channelStore createSlice({name:channel,initialState:{channelList:[]},reducers:{getChannels(state, action){state.channelList action.payload}} })const {getChannels} channelStore.actions//单独写一个异步action的函数 异步操作处理完毕后再调用同步action修改状态 const getChannelList () {return async(dispatch) {const res await axios.get(http://geek.itheima.net/v1_0/channels)dispatch(getChannels(res.data.data.channels))} }export {getChannelList}const reducer channelStore.reducer export default reducer App.js import { useSelector, useDispatch } from react-redux; import {inscrement, descrement, addToNum} from ./store/modules/counterStore import {getChannelList} from ./store/modules/channelStore import {useEffect} from react function App() {const { count } useSelector(state state.counter)const { channelList } useSelector(state state.channel)const dispatch useDispatch()useEffect(() {dispatch(getChannelList())}, [dispatch])return (div classNameAppbutton onClick{() dispatch(inscrement())}/button{count}button onClick{() dispatch(descrement())}-/buttonbutton onClick{() dispatch(addToNum(10))} 10/buttonbutton onClick{() dispatch(addToNum(-10))}- 10/buttonul{channelList.map(item li key{item.id}{item.name}/li)}/ul/div); }export default App;调试工具redux devtools 直接在chorme商店里下载
http://wiki.neutronadmin.com/news/415924/

相关文章:

  • 查看网站信息图标怎么做午夜资源站
  • 中国建设工程造价管理系统网站简单好看的网页设计代码
  • 推广网站优化怎么做龙岗菠菜网站建设
  • 建设施工合同网站上海市工程建设标准化信息网站
  • 网站建设栏目这一块怎么写wordpress和t
  • 网站续费如何做分录软件详细设计文档
  • dede网站底部服饰的网站建设
  • 如何建设一个电影网站男生学平面设计好就业吗
  • 网站视差怎么做网站开发中如何制作登录页面
  • wordpress网站发布四川省住房城乡建设厅网站
  • 网站建设福州公司电商摄影
  • 义乌多语言网站建设域名注册成功了然后怎么做
  • 西安网站排名分析国内家居行业网站开发
  • wordpress 媒体库角色权限专业放心关键词优化参考价格
  • 公司网站的备案号是如何链接的网站域名过期未续费怎么办
  • 旅游网站制作素材沧浪网站建设
  • 企业网站建设课件wordpress付费下载主题
  • 网站备案网站前置审批县文化馆网站建设方案
  • 西宁网站制作公司360商场内部
  • iis 新建网站没有文件夹权限深圳福田搬家公司
  • 做静态网站工资多少杭州微网站建设公司哪家好
  • 纸做的花朵成品网站做购物商城网站
  • 成华网站制作网页版微信网址是多少
  • 建设网站业务竞争大制作哪个网站好
  • 网站如何做微信支付百度网盘官网登陆入口
  • 建设互联网教育网站网页美工设计课程标准
  • 小学文化学网站开发怎么知道公司网站是哪个公司做的
  • 网站建设行业市场规模wordpress 用户验证
  • 网上购物有哪些网站?wordpress 循环菜单
  • 网站建设在国内外研究现状wordpress 表格小工具栏