Peut réagir un composant avons de multiples domaines de l'enfant contenu?
Disons que j'ai un simple réagir composant:
import React from 'react';
import styles from "./index.css";
export default React.createClass({
render: function() {
return (
<header className={styles.root}>
//area for child content
{this.props.children}
</header>
);
}
});
Maintenant, disons qu'au lieu d'une zone pour n'importe quel enfant de composants, je veux les deux, comme suit:
import React from 'react';
import styles from "./index.css";
export default React.createClass({
render: function() {
return (
<header className={styles.root}>
<div className={styles.logo}>
//logo children here
</div>
<div>
//navigation children here
</div>
</header>
);
}
});
Je sais que je pourrais utiliser des attributs, mais ce ne serait pas très élégant pour une grande partie du contenu html. Comment cela peut-il être fait de réagir d'une manière qui est similaire à l', par exemple, la nommé blocs dans gorgée?
Exemple de nommé blocs:
{% extends 'layout.html' %}
{% block title %}My Page{% endblock %}
{% block head %}
{% parent %}
<link rel="stylesheet" href="custom.css">
{% endblock %}
{% block content %}
<p>This is just an awesome page.</p>
{% endblock %}
Vous voyez que ces blocs peuvent être utilisés par référence à leur nom, et ainsi permettre à "rendement" de multiples domaines de contenu. Je suis en espérant qu'il y est un de la même façon élégante façon de réagir à ce faire, car il rend des composants très modulable.
- Quand vous dites "je sais que je pourrais utiliser les attributs" - entendez-vous des accessoires? Pourquoi ce ne serait pas élégant?
- Ouais, les propriétés qui sont définies dans la balise
<ReactComponent property="a large amount of html here wouldn't be very maintainable" />
. - Votre exemple de l'nommé blocs ressemble à Django, pas rasade?
Vous devez vous connecter pour publier un commentaire.
//header.js
//app.js
Do not use props to pass components as children
"des Accessoires et de la composition vous donner toute la souplesse dont vous avez besoin pour personnaliser un composant de l'apparence et du comportement explicitement et de façon sécuritaire. Rappelez-vous que les composants peuvent accepter l'arbitraire des accessoires, y compris des valeurs primitives, de Réagir éléments ou fonctions."Vous pouvez traiter des accessoires comme des enfants, parce que techniquement
children
est juste un autre pilier. Il n'y a rien de mal avec cette approche – Réagir contributeurs eux-mêmes vous suggérons de le faire (Support de multiples points d'insertion de l'enfant).En outre, si vous travaillez dans une grande équipe d'ingénieurs, je dirais aussi standardisation de la façon dont vous le nom de ces accessoires ainsi que leur comportement standard – sont-ils simplement un contenu ou d'un rappel, vous pouvez passer des arguments à. réagir-des espaces réservés peut vous aider avec ça. Donc, le code de votre composant peut ressembler à ça:
Et c'est comment vous pouvez intégrer ce composant