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

做企业网站那家好网站后台图片上传大小

做企业网站那家好,网站后台图片上传大小,网站制作_做网站_耐思智慧,做网站是咋收费的React主要是单向数据流,所以双向绑定不像Vue那样直接有v-model。那在React里通常是怎么做的呢? react数据双向绑定 在 React 中实现双向数据绑定需要手动组合状态管理和事件处理,主要通过在输入元素上使用 value 属性和 onChange 事件的组合…

React主要是单向数据流,所以双向绑定不像Vue那样直接有v-model。那在React里通常是怎么做的呢?

react数据双向绑定

在 React 中实现双向数据绑定需要手动组合状态管理和事件处理,主要通过在输入元素上使用 value 属性和 onChange 事件的组合来实现。以下是具体实现方式:

import { useState } from 'react';function App() {const [inputValue, setInputValue] = useState('');// 双向绑定逻辑const handleChange = (e) => {setInputValue(e.target.value); // 输入变化时更新状态};return (<div><input type="text"value={inputValue}       // 状态 → 视图onChange={handleChange}  // 视图 → 状态/><p>Current Value: {inputValue}</p></div>);
}

如果我们页面中有许多的输入框,代码就会很繁琐,所以我们进行封装

封装双向数据绑定

新建hooks文件
import { useState } from "react";const resolveValue = (e:any)=>{return e?.target?.value??e?.value??e
}const useInput = (value: any) => {const [state, setState] = useState(value);const bindState = {value: state,onChange: (e: React.ChangeEvent<HTMLInputElement>) => {setState(resolveValue(e));},onInput: (e: React.ChangeEvent<HTMLInputElement>) => {setState(resolveValue(e));},};return [state,bindState,setState,];
};
export { useInput }
页面使用
import { Input, Select } from "antd";
import { useEffect } from "react";
import { useInput } from "@/hooks/index"; //引入封装的双向绑定hooks
const Login = () => {const [username, bindUsername, setUsername] = useInput("");const [userPassword, binduserPassword, setuserPassword] = useInput("");const [userSelect, binduserSelect, setuserSelect] = useInput([]);useEffect(() => {console.log(username);console.log(userPassword);console.log(userSelect);}, [username, userPassword, userSelect]);return (<div><Input placeholder="username" {...bindUsername} /><Input placeholder="userpassword" {...binduserPassword} /><Selectmode="multiple"placeholder="Please select"style={{ width: "200px" }}{...binduserSelect}options={[{ value: "Ava Swift", label: "Ava Swift" },{ value: "Cole Reed", label: "Cole Reed" },{ value: "Mia Blake", label: "Mia Blake" },{ value: "Jake Stone", label: "Jake Stone" },]}/></div>);
};
export default Login;

http://www.dtcms.com/a/461888.html

相关文章:

  • 把List<T>构建一颗树封装工具类
  • GISBox v2.0.0:新增功能、问题修复、性能优化三维度,强化GIS服务核心能力
  • Qt界面布局利器:QStackedWidget详细用法解析
  • ClickHouse 配置优化与问题解决
  • 宁波网站建设果核个人网页制作教程简单
  • 白塔网站建设iis .htaccess wordpress
  • 【计算机视觉】基于复杂环境下的车牌识别
  • 域名会跳转怎么进原网站wordpress注册没用
  • YOLO26 详解:面向边缘与低功耗的端到端(NMS‑free)目标检测新范式
  • 仿win8网站建电子商务网站需要多少钱
  • 网站右下角视频代码网站免费下载安装
  • 《低压配电数字化转型实战指南》13: 技术创新:下一代配电技术探索
  • 再见的数字怎么说好听
  • Cesium 军事标绘入门:用 Cesium-Plot-JS 快速实现标绘功能
  • 【ROS2快速学习】
  • Vue3源码runtime-core运行时核心模块之provide依赖和inject注入详解
  • 网站开发个人简历word下载陕西网站建设设计
  • P2P技术
  • 面试真实经历某节跳动大厂Java和算法问答以及答案总结(一)
  • Python全栈(基础篇)——Day08:后端内容(切片+迭代+实战演示+每日一题)
  • 各大网站头条凡科免费网站可以做推广吗
  • 技术速递|GitHub 如何保护开发者免受版权执法过度影响
  • LLAVA-MINI论文阅读
  • OpenAI Agents 并行化实现
  • CNN卷计计算
  • 腾讯云服务器做网站可以吗徐州网站建设
  • 上市公司协会网站建设汇报wordpress接入qq互联
  • 前端 = [...this.orderList] (深拷贝)和this.orderList (引用赋值)
  • 部门管理|“删除部门”功能实现(Django5零基础Web平台)
  • 从 0 到 1 搭建 Python 语言 Web UI自动化测试学习系列 12--日志模块设计