您的位置:首页 > 财经 > 金融 > 网页效果制作_顺口大气三个字公司名字_百度网站优化方案_seo优化排名

网页效果制作_顺口大气三个字公司名字_百度网站优化方案_seo优化排名

2024/12/23 11:19:40 来源:https://blog.csdn.net/weixin_64684095/article/details/144127191  浏览:    关键词:网页效果制作_顺口大气三个字公司名字_百度网站优化方案_seo优化排名
网页效果制作_顺口大气三个字公司名字_百度网站优化方案_seo优化排名

一、useState

接受一个初始值作为参数,并返回一个包含两个元素的数组。

import { useState } from "react";const Counter = () => {const [count, setCount] = useState(0);return (<div><p>Count: {count}</p><button onClick={() => setCount(count + 1)}>Increment</button></div>);};

`setCount` 也可以接受函数。这个函数接收前一个状态作为参数。可以基于前一个状态来计算。

const [count, setCount] = useState(0);const increment = () => {setCount((prevCount) => prevCount + 1);};

二、useReducer

接受一个`reducer`函数和一个初始状态作为参数。返回一个包含当前状态和`dispatch`函数的数组。

import { useReducer } from "react";const counterReducer = (state, action) => {switch (action.type) {case "INCREMENT":return state + 1;case "DECREMENT":return state - 1;default:return state;}};const Counter = () => {const [count, dispatch] = useReducer(counterReducer, 0);return (<div><p>Count: {count}</p><button onClick={() => dispatch({ type: "INCREMENT" })}>Increment</button><button onClick={() => dispatch({ type: "DECREMENT" })}>Decrement</button></div>);};

假设一个组件用于管理一个表单的状态,包括输入框的值和表单是否提交的状态:

const formReducer = (state, action) => {switch (action.type) {case "UPDATE_INPUT":return { ...state, inputValue: action.payload };case "SUBMIT_FORM":return { ...state, isSubmitted: true };default:return state;}};const FormComponent = () => {const [formState, dispatch] = useReducer(formReducer, {inputValue: "",isSubmitted: false,});const handleInputChange = (e) => {dispatch({ type: "UPDATE_INPUT", payload: e.target.value });};const handleSubmit = () => {dispatch({ type: "SUBMIT_FORM" });};return (<form onSubmit={handleSubmit}><inputtype="text"value={formState.inputValue}onChange={handleInputChange}/>{formState.isSubmitted && <p>Form submitted!</p>}<button type="submit">Submit</button></form>);};

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com