zoukankan      html  css  js  c++  java
  • 受控组件和非受控组件

    受控组件处理表单数据是交给react内部的状态来处理,而非受控组件可以通过ref 交给dom来处理

    1、受控组件的表单处理

    import React, { Component } from 'react';
    import ReactDOM from 'react-dom'
    import PropTypes from 'prop-types';
    
    class App extends React.Component{
        constructor(props){
            super(props)
            this.state = {
                value:'blob'
            }
            this.changeHandle = this.changeHandle.bind(this)
            this.handleSubmit = this.handleSubmit.bind(this)
        }
        changeHandle(event){
            let val = event.target.value
            this.setState((state)=>({
                value:val
            }))
        }
        handleSubmit(event){
            alert('您输入的是'+this.state.value)
            event.preventDefault();  
        }
        render(){
            return (
                <form onSubmit={this.handleSubmit}>
                    <input placeholder="请输入" value={this.state.value} onChange={this.changeHandle} />
                    <input type="submit" value="Submit" />
                </form>
            )
        }
    }
    
    ReactDOM.render(<App />,document.getElementById('root'))
    

     2、非受控组件的表单处理

    import React, { Component } from 'react';
    import ReactDOM from 'react-dom'
    import PropTypes from 'prop-types';
    
    class App extends React.Component{
        constructor(props){
            super(props)
            this.input = React.createRef()
            this.handleSubmit = this.handleSubmit.bind(this)
        }
        handleSubmit(event){
            alert('您输入的是'+this.input.current.value)
            event.preventDefault();  
        }
        render(){
            return (
                <form onSubmit={this.handleSubmit}>
                    <input ref={this.input} placeholder="请输入" defaultValue="blob" />
                    <input type="submit" value="Submit" />
                </form>
            )
        }
    }
    
    ReactDOM.render(<App />,document.getElementById('root'))
    
  • 相关阅读:
    linux 环境变量
    Java finally语句到底是在return之前还是之后执行?
    JAVA NIO之浅谈内存映射文件原理与DirectMemory
    cpu架构
    tomcat 安装
    linux 下载rpm包到本地,createrepo:创建本地YUM源
    linux下查看和添加PATH环境变量
    virtualbox 相关操作
    空间叠加分析
    java程序的加载与执行
  • 原文地址:https://www.cnblogs.com/nianzhilian/p/13362169.html
Copyright © 2011-2022 走看看