P13:Redux进阶-Redux中的无状态组件的改写

Posted wgchen~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P13:Redux进阶-Redux中的无状态组件的改写相关的知识,希望对你有一定的参考价值。

阐述

无状态组件其实就是一个函数,它不用再继承任何的类(class),当然如名字所一样,也不存在state(状态)。因为无状态组件其实就是一个函数(方法),所以它的性能也比普通的React组件要好。

无状态组件的改写

把UI组件改成无状态组件可以提高程序性能,具体来看一下如何编写。

1、首先我们不在需要引入React中的 Component ,删除就好。

2、然后写一个TodoListUI函数,里边只返回JSX的部分就好,这步可以复制。

3、函数传递一个props参数,之后修改里边的所有props,去掉 this

这里给出最后修改好以后的无状态组件代码,这样的效率要高于以前写的普通react组件。

import React from 'react';
import 'antd/dist/antd.css'
import  Input , Button , List  from 'antd'

const TodoListUi = (props)=>
    return(
        <div style=margin:'10px'>
            <div>
                <Input  
                    style= width:'250px', marginRight:'10px'
                    onChange=props.changeInputValue
                    value=props.inputValue
                />
                <Button 
                    type="primary"
                    onClick=props.clickBtn
                >增加</Button>
            </div>
            <div style=margin:'10px',width:'300px'>
                <List
                    bordered
                    dataSource=props.list
                    renderItem=
                        (item,index)=>(
                            <List.Item onClick=()=>props.deleteItem(index)>
                                item
                            </List.Item>
                        )
                    
                />    
            </div>
        </div>
    )



export default TodoListUi;

总结

本文主要学习了React中的无状态组件,如果是以前没有Redux的时候,实现分离是比较困难的,但是现在我们做项目,一定想着找个组件是否可以做成无状态组件。

如果能做成无状态组件就尽量作成无状态组件,毕竟性能要高很多。

以上是关于P13:Redux进阶-Redux中的无状态组件的改写的主要内容,如果未能解决你的问题,请参考以下文章

无状态组件 React 路由器

Typescript 无状态 HOC react-redux 注入道具打字

Blazor中的无状态组件

将状态传递给 React/Redux 中的递归嵌套组件

P20:Redux进阶-React-redux中的Provider和connect

react native 中的redux