四. React的不受控组件

不受控组件指的是,表单数据有DOM元素本身处理。
要编写一个为控制组件,可以使用一个ref来从DOM获得表单值,而不是为每个状态更新编写一个事件处理程序。
例如:

class NameForm extends React.Component {
  constructor(props) {
    super(props);
    this.handleSubmit = this.handleSubmit.bind(this);
  }

  handleSubmit(event) {
    alert('A name was submitted: ' + this.input.value);
    event.preventDefault();
  }

  render() {
    return (
      <form onSubmit={this.handleSubmit}>
        <label>
          Name:
          <input type="text" ref={(input) => this.input = input} />
        </label>
        <input type="submit" value="Submit" />
      </form>
    );
  }
}

注:使用不受控组件时很容易实现React代码与非React代码的集成。如果你希望的是快速开发,不要求代码质量,不受控组件可以一定程度上减少代码量。否则应当使用受控组件。

默认值

在不受控组建中,你可能希望React有初始值,这时可以使用defaultValue属性而不是value属性。
同样, <input type="checkbox"><input type="radio"> 支持 defaultChecked,而 <select><textarea> 支持defaultValue

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 原教程内容详见精益 React 学习指南,这只是我在学习过程中的一些阅读笔记,个人觉得该教程讲解深入浅出,比目前大...
    leonaxiong阅读 2,921评论 1 18
  • It's a common pattern in React to wrap a component in an ...
    jplyue阅读 3,369评论 0 2
  • 说在前面 关于 react 的总结过去半年就一直碎碎念着要搞起来,各(wo)种(tai)原(lan)因(le)。心...
    陈嘻嘻啊阅读 7,009评论 7 41
  • 本笔记基于React官方文档,当前React版本号为15.4.0。 1. 安装 1.1 尝试 开始之前可以先去co...
    Awey阅读 7,900评论 14 128
  • 有很多天都没有认真写了。 昨天毕业一周年,自己有感而点赞地发了个状态,不知是大家过于忙碌还是怎么,自己想要的赞只有...
    荷拉最爱阅读 238评论 0 0

友情链接更多精彩内容