受控组件和非受控组件

受控组件和不受控组件

受控组件是指:数据来源比较单一,非受控组件来源比较复杂。我们

应该尽量的避免使用非受控组件,比如input标签的value属性这个来源可能是用户的输入,也可能作为默认值进行输入。比如我们封装了一个Search组件

//search.jsx

const Search = (props) => {
  return <input value={props.defaultValue} onChange={props.onChange} />
}

// app.jsx

import Search from './search.jsx';

class App extends React.Component {
    constructor(props) {
        super(props);
        
        this.state = {
            value: ''
        };
        this.handleOnChange = this.handleOnChange.bind(this);
    }
    
    render() {
        return(<Search value={this.state.value} onChange={this.handleOnChange}/>);
    }
    
    handleOnChange(e) {
        this.setState({
            value: e.target.value;
        });
    }
}

个人思考: 我们应该避免将状态引入到相关的组件中去,尽量创造受控组将。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 受控组件 假设我们现在有一个表单,表单中有一个input标签,input的value值必须是我们设置在constr...
    YummyFried阅读 15,346评论 2 20
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,115评论 19 139
  • 原教程内容详见精益 React 学习指南,这只是我在学习过程中的一些阅读笔记,个人觉得该教程讲解深入浅出,比目前大...
    leonaxiong阅读 2,862评论 1 18
  • 今天吃完饭在回来的路上遇到了一个变态,虽然挺是无语的,镇定之后还是想想自己太大意,很多时候只有事情发生在自己身上了...
    Mslow_CX阅读 165评论 0 0
  • 注:该实例来自网络,现以swif2.x重写。取自互联网,还以互联网。要掌握ios,自定义TabBar是非常重要的,...
    就怕是个demo阅读 3,405评论 1 5