App的主要组件应该是Pure还是无状态?

时间:2019-03-10 19:08:41

标签: react-native optimization

在React-Native中,我们应该使用纯组件还是无状态函数作为主要组件?

有两种方法:

import React from 'react';
import { Provider } from 'react-redux';

import store from './reducers/AppReducers';
import AppRoutes from './routes/AppRoutes';

// Pure Component
class App extends React.PureComponent {
    render() {
        return (
            <Provider store={store}>
                <AppRoutes />
            </Provider>
        );
    }
}

// Stateless Function
const App = () => {
    return (
        <Provider store={store}>
            <AppRoutes />
        </Provider>
    );
};

1 个答案:

答案 0 :(得分:3)

如果您的组件很简单,请使用stateless。对于简单的组件,不需要使用Pure Components

假设如果您有一个显示文本的组件并将其设为纯组件,则每次重新渲染时,都会首先进行浅表比较。 在这种情况下,重新渲染将是有效的,然后进行比较浅的比较。

由您决定组件是否可以进行比较比较浅或重新渲染的性能如何

提示:如果您有一个非常基本的组件,仅显示一些基本内容,请使用stateless

https://medium.com/groww-engineering/stateless-component-vs-pure-component-d2af88a1200b 在这里进行详细说明。

在您的情况下,我建议Pure Component因为它包含您的整个应用程序,因此重新渲染会比浅表比较昂贵