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

首次做淘宝客网站要安装程序吗远程wordpress数据库

首次做淘宝客网站要安装程序吗,远程wordpress数据库,建立网站赚钱,网上商城网站开发报告使用 useContext useReducer 实现的轻量级状态管理,适合中小型 React 应用使用。 🧠 实现思路 使用 createContext 创建两个上下文:StateContext 和 DispatchContext。用 useReducer 管理状态逻辑。创建一个 Provider 组件包裹应用。提供两…

使用 useContext + useReducer 实现的轻量级状态管理,适合中小型 React 应用使用。


🧠 实现思路

  1. 使用 createContext 创建两个上下文:StateContextDispatchContext
  2. useReducer 管理状态逻辑。
  3. 创建一个 Provider 组件包裹应用。
  4. 提供两个 hooks:useGlobalState()useGlobalDispatch(),分别获取状态和派发方法。

✅ 示例代码

1️⃣ 创建状态管理库:store.js

import React, { createContext, useReducer, useContext } from 'react';// 定义初始状态
const initialState = {count: 0,user: null,
};// 定义 reducer
function reducer(state, action) {switch (action.type) {case 'INCREMENT':return { ...state, count: state.count + 1 };case 'DECREMENT':return { ...state, count: state.count - 1 };case 'SET_USER':return { ...state, user: action.payload };default:throw new Error(`Unknown action type: ${action.type}`);}
}// 创建两个上下文
const StateContext = createContext(null);
const DispatchContext = createContext(null);// 创建 Provider
export function GlobalProvider({ children }) {const [state, dispatch] = useReducer(reducer, initialState);return (<StateContext.Provider value={state}><DispatchContext.Provider value={dispatch}>{children}</DispatchContext.Provider></StateContext.Provider>);
}// 封装 hooks
export function useGlobalState() {const context = useContext(StateContext);if (context === undefined) {throw new Error('useGlobalState must be used within a GlobalProvider');}return context;
}export function useGlobalDispatch() {const context = useContext(DispatchContext);if (context === undefined) {throw new Error('useGlobalDispatch must be used within a GlobalProvider');}return context;
}

2️⃣ 使用示例

App.js
import React from 'react';
import { GlobalProvider } from './store';
import Counter from './Counter';
import User from './User';function App() {return (<GlobalProvider><h1>My App</h1><Counter /><User /></GlobalProvider>);
}export default App;

Counter.js
import React from 'react';
import { useGlobalState, useGlobalDispatch } from './store';function Counter() {const { count } = useGlobalState();const dispatch = useGlobalDispatch();return (<div><h2>Count: {count}</h2><button onClick={() => dispatch({ type: 'INCREMENT' })}>+</button><button onClick={() => dispatch({ type: 'DECREMENT' })}>-</button></div>);
}export default Counter;

User.js
import React from 'react';
import { useGlobalState, useGlobalDispatch } from './store';function User() {const { user } = useGlobalState();const dispatch = useGlobalDispatch();const login = () => {dispatch({ type: 'SET_USER', payload: { name: 'Heo Hao' } });};return (<div><h2>User: {user ? user.name : 'Guest'}</h2><button onClick={login}>Login</button></div>);
}export default User;

🧩 优点

  • 不依赖第三方库(如 Redux、Zustand)
  • 轻量、易用、类型安全(可结合 TS)
  • 适合中小项目
http://www.yayakq.cn/news/38473/

相关文章:

  • 温州网站设计公司网推拉新平台
  • 销售型网站营销目标网站 网页数量
  • 怎么自己做画册网站微官网和手机网站区别
  • 平台型网站建设公司台州建设局网站企业黑名单
  • 怎么做网站文章伪原创jiasale wordpress 插件
  • 宜兴建设局的网站移动端网站建设公司
  • 做服装团购有哪些网站网站策划知识
  • 百度站长反馈中心wordpress固定链接500
  • 设计之家网站怎么样江苏省建设招标网站首页
  • 关于网站建设的基础知识厦门35网站建设公司
  • 上海网站开发方案郑州网站推广哪家专业
  • 天水市网站建设网站如何开通支付功能
  • 网站开发需要大学吗沪深300指数基金排名
  • 电子商务网站建设的心得体会黑白高端大气网站设计工作室织梦dedecms模板
  • 网站的栏目和版块设计的原则吕梁seo排名
  • 工业做网站甜橙直播
  • 哪个网站做欧洲旅行比较好淘宝客网站怎么做优化
  • 大气手机网站用什么软件做网站前端
  • 西宁网站设计公司js做示爱网站例子
  • 莱芜网站建设自助建站优化微信公众号网页怎么制作
  • 沈阳科技网站建设wordpress搜索不了中文linux
  • 建设一个能看视频的网站手机网站需要备案吗
  • 清理wordpress烟台优化网站排名
  • 知名企业门户网站建设联系电话湖州长兴做网站
  • 档案网站建设思考php wordpress 漏洞
  • 新乡网站建设设计做一个配送网站
  • 怎么做网站关键词库排名千万别在百度上搜别人的名字
  • 网站开发用wordpress英文源码
  • 网站建设公司源码 asp新手如何做网站
  • 佛山网站建设公司哪家性价比高2345网址导航浏览器