最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 受控组件与非受控组件(三)

    正文概述 掘金(s叉叉)   2021-03-07   656

    非受控组件

    非受控组件指的是表单的数据不再由React组件进行管理,而是交给DOM节点处理,可以使用refs属性来从DOM节点中获取到数据。

    class NameForm extends React.Component {
      constructor(props){
        super(props);
        this.input = React.createRef();
      }
      handleSubmit(e){
        console.log(this.input.current.value);
        e.preventDefault();
      }
      render(){
        return (
        	<form onSubmit={this.handleSubmit.bind(this)}>
          	<input type="text" ref={this.input} />
            <input type="submit" value="submit" />
          </form>
        )
      }
    }
    

    非受控组件将代码存储在真实的DOM节点中,可以节省很多代码。

    在React组件中,表单元素的value值会覆盖这个DOM节点,如果我们想要给组件添加默认值,又不影响后续的输入,可以使用defaultValue属性:

    <input defaultValue="hi" ref={this.input} />
    

    什么时候用受控组件或非受控组件

    受控组件的特点是它和state是类似双向绑定的,也就是通过state可以实时拿到表单中的数据。

    所以受控组件能快速响应表单内容的变化,它适用于以下场景:

    • 输入实时验证
    • 依照某个条件禁用或不禁用一个button
    • 强制输入规范
    • 多个输入映射到同一份data

    非受控组件的使用场景主要有:

    • 对DOM 元素焦点的控制、内容选择或者媒体播放;
    • 通过对DOM元素控制,触发动画特效;
    • 通第三方DOM库的集成。

    参考资料:

    关于受控和非受控组件

    React官方文档


    起源地下载网 » 受控组件与非受控组件(三)

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元