无状态组件

2022-03-27  本文已影响0人  泡杯感冒灵
当一个组件只有一个render函数的时候,就可以用无状态组件来定义这个组件。无状态组件其实就是一个函数。接收props作为参数,props就是父组件传递过来的数据,要求返回一段jsx。
import React,{Component} from 'react';
import 'antd/dist/antd.css';
import { Input,Button,List } from 'antd';

// 这个函数里,直接使用props就可以了,不需要this.props
const TodoListUI = (props) => {
    return (
        <div style={{margin:'10px'}}>
            <div>
                <Input 
                    value={props.inputValue}  
                    placeholder="todo info" 
                    style={{width:'300px',marginRight:'10px'}}
                    onChange={props.handleInputChange}
                >
                </Input>
                <Button 
                    type="primary"
                    onClick={props.handleBtnClick}
                >
                    提交
                </Button>
            </div>
            <List
                style={{marginTop:'10px',width:'300px'}}
                bordered
                dataSource={props.list}
                renderItem={(item,index) => <List.Item onClick={()=> {props.handleItemDelete(index)}}>{item}</List.Item>}
            />
        </div>
    )
}

// class TodoListUI extends Component {
//     render(){
//         return (
//             <div style={{margin:'10px'}}>
//                 <div>
//                     <Input 
//                         value={this.props.inputValue}  
//                         placeholder="todo info" 
//                         style={{width:'300px',marginRight:'10px'}}
//                         onChange={this.props.handleInputChange}
//                     >
//                     </Input>
//                     <Button 
//                         type="primary"
//                         onClick={this.props.handleBtnClick}
//                     >
//                         提交
//                     </Button>
//                 </div>
//                 <List
//                     style={{marginTop:'10px',width:'300px'}}
//                     bordered
//                     dataSource={this.props.list}
//                     renderItem={(item,index) => <List.Item onClick={()=> {this.props.handleItemDelete(index)}}>{item}</List.Item>}
//                 />
//             </div>
//         )
//     }
// }

export default TodoListUI;
无状态组件相对于普通的组件的优势是什么?
无状态组件什么时候用呢?
上一篇下一篇

猜你喜欢

热点阅读