[React Fundamentals] Composable Components

來源:互聯網
上載者:User

標籤:

 

To make more composable React components, you can define common APIs for similar component types.

 

import React from ‘react‘;import ReactDOM from ‘react-dom‘;export default class App extends React.Component{    constructor(){        super();        this.state = {            red: 0,            green: 0,        }    }    update(){        this.setState({            red: ReactDOM.findDOMNode(this.refs.red.refs.inp).value,            green: ReactDOM.findDOMNode(this.refs.green.refs.inp).value,        })    }    render(){        return(          <div>              <NumInput                ref="red"                type="range"                min={0}                max={255}                step={1}                val={+this.state.red}                label="Red"                update={this.update.bind(this)}              ></NumInput>              <NumInput                ref="green"                type="number"                step={0.01}                val={+this.state.green}                label="Green"                update={this.update.bind(this)}              ></NumInput>          </div>        );    }}class NumInput extends React.Component{    constructor(){        super();    }    render() {        const label = this.props.label ?                <label>{this.props.label} - {this.props.val}</label> :                ‘‘;        return (            <div>                <input                    type={this.props.type}                    min={this.props.min}                    max={this.props.max}                    step={this.props.step}                    defaultValue={this.props.val}                    onChange={this.props.update}                    ref="inp"                />                {label}            </div>        );    }}NumInput.propTypes = {    type: React.PropTypes.oneOf([‘range‘, ‘number‘]),    min: React.PropTypes.number,    max: React.PropTypes.number,    step: React.PropTypes.number,    val: React.PropTypes.number,    label: React.PropTypes.string,    update: React.PropTypes.func.isRequired,};NumInput.defaultProps = {    type: ‘range‘,    min: 0,    max: 255,    step: 1,    val: 0,    label: ‘‘};

 

[React Fundamentals] Composable Components

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.