【React】第四部分 非受控组件和受控组件

导读:本篇文章讲解 【React】第四部分 非受控组件和受控组件,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

【React】第四部分 非受控组件和受控组件



4. 非受控组件和受控组件

非受控组件

简单来说就是对于输入类的DOM现用现取就叫做非受控组件

 class Demo extends React.Component{
            render(){
                return (
                    <form onSubmit ={this.handleForm}>
                        用户名 : <input ref={c => this.userName = c} type="text" /><br/>
                        密码 : <input ref={c => this.password = c} type="password" /><br/>
                        <button>登录</button>
                    </form>
                )
            }

            handleForm = () =>{
                const {userName,password} = this
                alert(`用户名: ${userName.value} -- 密码: ${password.value}`)
            }
        }

        ReactDOM.render(<Demo/>,document.getElementById('box'))

受控组件

对于输入类的DOM随着输入发生变化不断维护到状态里,需要用的时候在从状态中取出来

 // 受控组件
        class Demo extends React.Component{
            render(){
                return (
                    <form onSubmit ={this.handleForm}>
                        用户名 : <input onChange = {this.saveUserName} type="text" /><br/>
                        密码 : <input onChange = {this.savePassword} type="password" /><br/>
                        <button>登录</button>
                    </form>
                )
            }

            // 初始化state
            state = {
                userName : '',
                password : ''
            }

            saveUserName = (e) =>{
                this.setState({userName:e.target.value})
            }

            savePassword = (e) =>{
                this.setState({password:e.target.value})
            }


            handleForm = () =>{
                const {userName,password} = this.state
                alert(`用户名: ${userName} -- 密码: ${password}`)
            }
        }

        ReactDOM.render(<Demo/>,document.getElementById('box'))

在开发中尽量写受控组件这种形式因为可以避免写很多的ref 影响性能


总结

以上就是今天要讲的内容,希望对大家有所帮助!!!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/82869.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!