reactjs / reactjs/react.dev

Deep comparison in PureComponent question

Ouverte
#3,909 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
JavaScript
Étoiles
11.8k
Forks
7.9k
Merge moyen
1 j 11 h
PR mergées (30 j)
11

Description

Hello team,

We have a base class for React components that we're beginning to use. It's like PureComponent but does deep comparison of JSON-like values (just objects, arrays, and primitives). The purpose is to avoid re-renders when inputs haven't changed, even when objects/arrays were reconstructed.

import React from 'react';
import { compareObj } from './deepCompare';

export default class PureDeepComponent extends React.Component {
    shouldComponentUpdate(newProps, newState) {
        return !(compareObj(this.props, newProps) && compareObj(this.state, newState));
    }
}

I was surprised that something like this wasn't included in React, and I'm wondering what the team's thoughts are -- was there a good reason for not doing something like this?

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Aucun fichier, test ou point d’entrée n’est identifié. Commencez par examiner le comportement de PureComponent et shouldComponentUpdate décrit dans l’issue, puis déterminez si le résultat souhaité est une fonctionnalité de la React API ou de la documentation ; l’issue n’est pas complète tant que ce périmètre et les critères d’acceptation n’ont pas été convenus.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
javascript, react
Domaine
frontend
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
18/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.