代码之家  ›  专栏  ›  技术社区  ›  j.doe BudgieInWA

在React中打开“this”是一种不好的做法吗?

  •  2
  • j.doe BudgieInWA  · 技术社区  · 6 年前

    使渲染函数看起来更整洁。这样做不好吗?

    class Zoom extends React.Component {
        // ...
    
        render() {
            const {view, zoomOutScreen} = this;
            const {navigation} = this.props;
    
            return (
                <Wrapper
                    innerRef={view}
                    animation='zoomIn'
                    duration={200}
                    useNativeDriver={true}
                >
                    <Component
                        navigation={navigation}
                        zoomOutScreen={zoomOutScreen}
                    />
                </Wrapper>
            );
        }
    }
    
    3 回复  |  直到 6 年前
        1
  •  6
  •   T.J. Crowder    6 年前

    这既不好也不坏,主要是风格的问题。

    可能会有 非常 在某些使用场景中,目标差异很小,但没有什么值得考虑的。(如果重复使用这些属性,将它们缓存到本地常量可能会加快查找速度。否则,将它们缓存到本地常量是不必要的步骤。但是,在99.99999999%的情况下,这根本不会对现实世界产生任何影响。做最清楚的事。)


    旁注:如果需要,可以将两个分解指定合并:

    const {view, zoomOutScreen, props: {navigation}} = this;
    
        2
  •  2
  •   Sakhi Mansoor    6 年前

    这是一个不错的做法,但它更易于代码可读性,并避免React中的反模式。它向用户提供了哪些对象绑定到此组件以及哪些对象引用全局对象的知识。所以最好不要破坏它。