React笔记——核心概念:9.表单

1、受控组件

  • 在 React 中,可变状态(mutable state)通常保存在组件的 state 属性中,并且只能通过使用 setState()来更新。
  • state:唯一数据源
  • 渲染表单的 React 组件还控制着用户输入过程中表单发生的操作。被 React 以这种方式控制取值的表单输入元素就叫做“受控组件”。
  • 示例:
React笔记——核心概念:9.表单

React笔记——核心概念:9.表单

2、Textarea标签

  • 在 HTML 中, <textarea> 元素通过其子元素定义其文本/<textarea>
  • React笔记——核心概念:9.表单

  • 在 React 中,<textarea> 使用 value 属性代替/<textarea>
  • 示例:
  • React笔记——核心概念:9.表单

    3、Select标签

  • 在 HTML 中,<select> 创建下拉列表标签/<select>
  • React笔记——核心概念:9.表单

  • React 在根 select 标签上使用 value 属性
  • 单选示例:
  • React笔记——核心概念:9.表单

    React笔记——核心概念:9.表单

  • 多选示例:
  • React笔记——核心概念:9.表单

    React笔记——核心概念:9.表单

    React笔记——核心概念:9.表单

    4、文件 input 标签

    • 因为它的 value 只读,所以它是 React 中的一个非受控组件
    React笔记——核心概念:9.表单

    5、处理多个输入

    • 当需要处理多个 input 元素时,我们可以给每个元素添加 name 属性,并让处理函数根据 event.target.name 的值选择要执行的操作。
    • 示例:
    React笔记——核心概念:9.表单

    React笔记——核心概念:9.表单

    React笔记——核心概念:9.表单

    • 使用了 ES6 计算属性名称的语法更新给定输入名称对应的 state 值
    React笔记——核心概念:9.表单

    6、受控输入空值

    • 在受控组件上指定 value 的 prop 会阻止用户更改输入。如果你指定了 value,但输入仍可编辑,则可能是你意外地将value 设置为 undefined 或 null。
    • 示例:
    React笔记——核心概念:9.表单

    7、受控组件的替代品

    • 使用非受控组件, 这是实现输入表单的另一种方式。

    8、成熟的解决方案

    • 包含验证、追踪访问字段以及处理表单提交的完整解决方案,使用 Formik 是不错的选择



    关联文章:


    分享到:


    相關文章: