美文网首页
(二十四)无状态组件

(二十四)无状态组件

作者: 云凡的云凡 | 来源:发表于2020-11-01 23:03 被阅读0次

完善一下(二十三) 的 TodoListUI.js UI 组件

1.无状态组件 在什么时候用?

当一个组件只有render函数时,就可以写成 无状态组件
无状态组件:其实就是一个函数,这个函数会接收一个参数叫 props,也就是父组件传递 过来的内容,同时返回一个 JSX,jsx中使用 props 就不要this.props 了,直接用props

image.png

只改了 TodoListUI.js 文件-把 普通组件 注释了

// import React, { Component } from 'react';
import React from 'react';
import { Input, Button, List } from 'antd';

// 无状态组件
const TodoListUI = (props) => {
    return (
        <div style={{ marginTop: '10px', marginLeft: '10px' }}>
            <div>
                <Input value={props.inputValue} placeholder="todo info" style={{ width: '300px', marginRight: '10px' }} onChange={props.handleInputChange} />
                <Button type="primary" onClick={props.handleBtnClick}>提交</Button>
                <List style={{ marginTop: '10px', width: '300px' }}
                    bordered
                    dataSource={props.list}
                    renderItem={(item, index) => (
                        <List.Item onClick={() => { props.handleItemDelete(index) }}>
                            {item}
                        </List.Item>
                    )}
                />
            </div>

        </div>
    )
}


// 普通组件
// class TodoListUI extends Component {
//     render() {
//         return (
//             <div style={{ marginTop: '10px', marginLeft: '10px' }}>
//                 <div>
//                     <Input value={this.props.inputValue} placeholder="todo info" style={{ width: '300px', marginRight: '10px' }} onChange={this.props.handleInputChange} />
//                     <Button type="primary" onClick={this.props.handleBtnClick}>提交</Button>
//                     <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>

//             </div>
//         )
//     }
// }
export default TodoListUI
2.无状态组件 相对于 普通组件 的优势是什么?

无状态组件性能比普通组件高:因为它就是一个函数,而 普通组件 是一个js里的类,这个类生成的对象里面还会有一些生命周期函数,普通组件执行起来既要执行render、又要执行生命周期函数,所以普通组件执行的东西远比函数多

3.一般在什么时候用 无状态组件?

当我们在定义 UI组件的时候,它只负责页面的渲染、没有去做任何的逻辑操作的时候,UI组件 一般可以用 无状态子组件来定义。

E:\20201017-React\redux-todolist\ui-container-component\todolist
需要完整代码,加我微信: hello_helloxi

相关文章

  • (二十四)无状态组件

    完善一下(二十三) 的 TodoListUI.js UI 组件 1.无状态组件 在什么时候用? 当一个组件只有...

  • React入门(八)无状态组件

    本节知识点 (1) 无状态组件和有状态组件的区别 (2) 无状态组件的使用 (一)无状态组件和有状态组件的区别 (...

  • 函数式组件和类组件

    类组件(有状态组件) 函数式组件(无状态组件)没有生命周期 受控组件:所有的状态都没有,受外部组件控制才能改变状态...

  • react组件设计心得

    无状态组件有状态组件

  • 组件

    组件定义 组件的props 组件的state 有状态组件和无状态组件 属性校验和默认属性 组件样式

  • Flutter StatefullWidget 三种状态管理De

    在Flutter中,组件的状态管理还是非常重要的,组件要么是无状态的组件,要么是有状态的组件。无状态的组件使用起来...

  • 学习笔记(十八)Vuex状态管理

    Vuex状态管理 组件状态管理及组件间通信回顾 状态管理 状态集中管理和分发,解决多个组件共享状态的问题 状态自管...

  • 说说 Vue.js 中的 functional 函数化组件

    Vue.js 组件提供了一个 functional 开关,设置为 true 后,就可以让组件变为无状态、无实例的...

  • React 进阶二 组件详解

    React组件 React的组件大概分为俩部分,无状态组件和有状态组件 无状态组件。下面React官网中定义的一个...

  • react设计模式

    一. 有状态组件(stateful)与无状态组件(stateless) 有状态组件使用class声明,内部有sta...

网友评论

      本文标题:(二十四)无状态组件

      本文链接:https://www.haomeiwen.com/subject/vkpdmktx.html