react 组件双向绑定

1. 使用 state 实现双向绑定

对于双向绑定,需要同时处理表单元素的`value`属性(通过`state`来设置)和`onChange`事件(用于更新`state`)。

javascript 复制代码
import { useState } from "react";

const MyComponent = () => {

  const [inputValue, setInputValue] = useState("");

  const handleChange = (e) => {

    setInputValue(e.target.value);

  };

  return (

    <div>

      <input type="text" value={inputValue} onChange={handleChange} />

      <p>You entered: {inputValue}</p>

    </div>

  );

};

2. 多个表单元素的双向绑定

例如表单中有多个输入框,可以为每个表单元素创建一个独立的状态变量,或者使用一个对象来存储所有表单元素的值。

javascript 复制代码
import { useState } from "react";

const MyFormComponent = () => {

  const [formData, setFormData] = useState({

    name: "",

    email: "",

  });

  const handleChange = (e) => {

    const { name, value } = e.target;

    setFormData({

      ...formData,

      [name]: value,

    });

  };

  const handleSubmit = (e) => {

    e.preventDefault();

    console.log("Form submitted:", formData);

  };

  return (

    <form onSubmit={handleSubmit}>

      <input

        type="text"

        name="name"

        value={formData.name}

        onChange={handleChange}

      />

      <input

        type="email"

        name="email"

        value={formData.email}

        onChange={handleChange}

      />

      <button type="submit">Submit</button>

    </form>

  );

};
相关推荐
翻滚吧键盘28 分钟前
js代码09
开发语言·javascript·ecmascript
万少1 小时前
第五款 HarmonyOS 上架作品 奇趣故事匣 来了
前端·harmonyos·客户端
OpenGL1 小时前
Android targetSdkVersion升级至35(Android15)相关问题
前端
rzl021 小时前
java web5(黑马)
java·开发语言·前端
Amy.Wang1 小时前
前端如何实现电子签名
前端·javascript·html5
海天胜景1 小时前
vue3 el-table 行筛选 设置为单选
javascript·vue.js·elementui
今天又在摸鱼1 小时前
Vue3-组件化-Vue核心思想之一
前端·javascript·vue.js
蓝婷儿1 小时前
每天一个前端小知识 Day 21 - 浏览器兼容性与 Polyfill 策略
前端
百锦再1 小时前
Vue中对象赋值问题:对象引用被保留,仅部分属性被覆盖
前端·javascript·vue.js·vue·web·reactive·ref
jingling5552 小时前
面试版-前端开发核心知识
开发语言·前端·javascript·vue.js·面试·前端框架