79 votes

Quel est le point de StyleSheet.create

Je lis le didacticiel / documentation React Native et je me demande quel est l'intérêt de la fonction StyleSheet.create .

Par exemple, le tutoriel a le code suivant:

 const styles = StyleSheet.create({
  bigblue: {
    color: 'blue',
    fontWeight: 'bold',
    fontSize: 30,
  },
  red: {
    color: 'red',
  },
});
 

Mais je ne comprends pas la différence entre cela et:

 const styles = {
  bigblue: {
    color: 'blue',
    fontWeight: 'bold',
    fontSize: 30,
  },
  red: {
    color: 'red',
  },
};
 

75voto

Aakash Sigdel Points 3651

TL;DR Toujours utiliser StyleSheet.create() quand vous le pouvez.

La réponse de Nico est correct, mais il ya plus à elle.

Pour résumer:

  1. Il valide les styles, comme mentionné par Nico
  2. Comme mentionné dans la documentation:

Faire une feuille de style à partir d'un objet de style permet de le désigner par son ID au lieu de créer un nouveau style d'objet à chaque fois.

  1. Également mentionné dans la documentation:

Il permet également d'envoyer le style qu'une seule fois à travers le pont. Toutes les utilisations suivantes sont d'aller consulter un id (pas encore implémenté).

Comme vous le savez peut-être, de l'envoi des données à travers le pont est très coûteuse opération qui a un impact significatif sur les performances de l'application. Ainsi, l'utilisation de StyleSheet.create() vous réduire les tensions sur le pont.

42voto

ethanneff Points 1014

StyleSheet.create n'ajoute plus de gains de performance.

https://github.com/DefinitelyTyped/DefinitelyTyped/issues/29265#issuecomment-430783289

14voto

Nico Points 802

Voici là le code source de la créer.

create<T: Object, U>(obj: T): {[key:$Keys<T>]: number} {
  var result: T = (({}: any): T);
  for (var key in obj) {
    StyleSheetValidation.validateStyle(key, obj);
    result[key] = ReactNativePropRegistry.register(obj[key]);
  }
  return result;
}

Je ne suis pas un expert de Réagir en toute. Je n'ai jamais vraiment utilisé, mais voici mes impressions. Il semble qu' create n'est une certaine forme de validation sur vos clés et vous inscrire à Réagir.

Je pense que vous pouvez passer de la validation, tout simplement en n'appelant create mais je ne suis pas sûr de ce qu' ReactNativePropRegistry.register fait exactement.

La référence à la source

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X