Noms des composants dans React : casse-tête de la capitalisation
Lorsque vous travaillez avec ReactJS, il est courant de rencontrer un comportement particulier concernant les noms de composants. Contrairement aux éléments HTML, les composants React doivent commencer par des lettres majuscules. Cette distinction découle d'une décision architecturale fondamentale dans l'architecture sous-jacente de React.
React exploite JSX (JavaScript XML) pour définir les éléments de l'interface utilisateur. Dans JSX, les noms de balises minuscules sont interprétés comme des balises HTML, tandis que les noms de balises majuscules indiquent les composants React. Cette distinction est faite car les balises HTML interagissent avec le DOM natif du navigateur, tandis que les composants React sont des éléments personnalisés gérés par le moteur de réconciliation interne de React.
Considérez l'exemple suivant, où le nom du composant commence par une lettre minuscule :
var fml = React.createClass({ render: function () { return <a href='google.com'>Go</a>; } }); React.render(<fml />, document.body);
Ce code ne restituera pas l'élément prévu. Au lieu de cela, React interprète « fml » comme une balise HTML et tente de le faire correspondre à un élément correspondant dans le DOM. Cependant, comme "fml" n'existe pas en tant que balise HTML valide, le résultat est une page vierge.
Lorsque le nom du composant est modifié en majuscule, comme dans :
var Fml = React.createClass({ render: function () { return <a href='google.com'>Go</a>; } }); React.render(<Fml />, document.body);
React reconnaît "Fml" comme un composant et l'initialise, permettant à l'élément rendu d'apparaître sur la page.
En résumé, les noms des composants React doivent commencer par des lettres majuscules pour se différencier. à partir de balises HTML. Cette distinction garantit une bonne gestion des composants et le rendu correct de l'interface utilisateur.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!