javascript - 有条件地渲染一个 react 组件

标签 javascript performance reactjs rendering react-dom

对于在其生命周期的某个时刻隐藏的组件,呈现它的最佳方式是什么? 1)渲染组件,但不显示它(显示:无)。 2) 仅在需要时渲染组件。 什么对性能更好?如果组件的属性和状态稍后更新,让组件存在但隐藏在虚拟 DOM 中会更好吗?

render() {
    return (
        <div style={{display: this.props.visible ? 'block' : 'none'}}>
            <RestofComponentHere />
        </div>
    );
}

或者这个:

render() {
    if (!this.props.visible) {
        return null;
    }
    return (
        <div>
            <RestofComponentHere />
        </div>
    );
}

最佳答案

只选择最适合这种情况的方法。有时是方法 1,有时是方法 2。如果您发现它正在减慢您的应用程序,那么很容易转换为方法 1,但这只有在您有条件地渲染大量时间时才会发生。当您有组件的引用时,您希望始终呈现它,以便您可以访问 componentDidMount 中的引用,因此您可以将其隐藏。

如答案 here 所示,第一种方法更快但如果条件渲染是更清晰的代码,请不要为此进行微优化。

我在我的应用中混合使用了。

关于javascript - 有条件地渲染一个 react 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41312248/

相关文章:

javascript - 在 Next.js 项目中添加 webpack 插件

Android Studio - Windows 与 Ubuntu 与 macOS

c++ - 如何识别阻碍我的程序在 32 核 CPU 上良好扩展的瓶颈?

reactjs - React Native 中的 react-native run-android

javascript - 在按钮单击事件上将图像源传递给 <img>

javascript - 如何使用不同的图片集创建弹出图片幻灯片

javascript - 我如何在 Capybara 中测试页面是否*未*重新加载(JavaScript onClick 拦截有效)?

javascript - 在 Jquery 和 Bootstrap 中获取可折叠 div 的 id

asp.net-mvc - LINQ to SQL 在压力测试时抛出异常

javascript - 如何使用 react-chartjs 创建具有动态宽度的折线图?