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中profile、bashrc、bash_profile之间的区别和联系
    Ubuntu 安装MyEclipse10
    VMware_ubuntu设置共享文件夹
    (转载)Android出现“Read-only file system”解决办法
    Android 执行 adb shell 命令
    android传感器使用
    Android源码下载和编译过程
    jquery实现的ajax
    转载SQL_trace 和10046使用
    查看Oracle相关日志 ADRCI
  • 原文地址:https://www.cnblogs.com/nianzhilian/p/13362169.html
Copyright © 2011-2022 走看看