jsx-eslint/eslint-plugin-react

Rule proposal: no layout thrashing

Open

#1.889 aberto em 20 de jul. de 2018

Ver no GitHub
 (1 comment) (1 reaction) (0 assignees)JavaScript (2.797 forks)batch import
acceptedhelp wantednew rule

Métricas do repositório

Stars
 (8.630 stars)
Métricas de merge de PR
 (Nenhuma PRs mesclada em 30d)

Description

I've seen a lot of seemingly simple code lead to layout thrashing and performance problems that could have been statically detected and avoided. It would be nice to have a rule that could flag some of these scenarios.

I think it might make sense to take Paul Irish's list of what causes layout/reflow, and write a rule that flags when these happen synchronously in places like componentDidMount, render, and componentWillReceiveProps, etc.

Example:

class Foo extends React.Component {
  constructor(props) {
    super(props);

    this.state = {
      windowHeight: window.innerHeight, // <-- this forces layout
    };
  }
  // ...
}

Thoughts?

Guia do colaborador