javascript - 比较用css隐藏React组件和状态管理的性能

标签 javascript reactjs

如果我有一个 React 组件并且我想隐藏它。目前,我采用两种方法:

状态管理方式

render() {
    return (
        <div>
            { this.state.showComponent && <Component/> }
        </div>
    );
}

CSS 方式:

render() {
    return (
        <div>
            <Component className="hide-with-CSS"/>
        </div>
    );
}    

我假设前一种方式将根据当前状态删除/添加组件,而后一种方式只是“隐藏”它。所以我的问题是:

  • 哪种方法会产生更好的性能?
  • 是否有另一种有效隐藏元素的方法?

最佳答案

CSS 解决方案在显示和隐藏之间切换会更快。

但是,如果 this.state.showComponent 最初是 false,那么非 CSS 方式会避免最初安装 Component,所以初始渲染会更快。

此外,当 this.state.showComponentfalse 时,父组件将更能响应其他事件,因为它要渲染/重新渲染的组件少了一个(当父级重新渲染时,Component 也会被重新渲染,即使它的 props 没有改变,除非它被声明为纯的或实现的 shouldComponentUpdate)。

非 CSS 方法也更简单,因为它不涉及 CSS(而 CSS 方法也需要状态管理来切换类名)。

因此我推荐非 CSS 方法。

关于javascript - 比较用css隐藏React组件和状态管理的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50303162/

相关文章:

javascript - 关于如何在同一页面上多次调用 javascript 函数的建议

javascript - 如何向对象添加新属性?

node.js - 无法弄清楚为什么 Docker 构建命令不起作用

javascript - React Table 设置标题 onClick-Function 而不禁用 sort-Function

javascript - Spring 和 React 集成

javascript - Jasmine - ajax spyon 错误请求

javascript - 在JavaScript中检测浏览器的在线状态

javascript - 如何通过 IE 的 JavaScript 在输入框中键入内容

reactjs - 在导航更改时滚动恢复到顶部

javascript - React 中的 Eventbrite