Kann ein reagieren Komponente haben mehrere Bereiche für Kind Inhalt?
Sagen wir, ich habe eine einfache reagieren Komponente:
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>
);
}
});
Nehmen wir jetzt an, dass anstelle einer Fläche für jedes Kind-Komponenten, ich möchte zwei, etwa so:
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>
);
}
});
Ich weiß, dass ich verwenden könnte, Attribute, doch das wäre nicht sehr elegant, für einen großen Teil des html-Inhalts. Wie kann das getan werden, reagieren in einer Weise, die ähnlich ist, zum Beispiel, die benannte Blöcke in Schluck?
Beispiel von benannten Blöcken:
{% 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 %}
Sehen Sie, dass diese Blöcke können verwendet werden, indem Sie auf Ihren Namen, und damit zu 'Ertrag' in mehreren Bereichen von Inhalten. Ich bin der Hoffnung, dass es eine ähnlich elegante Weise reagieren, um dies zu tun, da es macht die Bauteile sehr zusammensetzbar.
- Wenn Sie sagen, "ich weiß, ich könnte die Attribute" - meinst du props? Warum wäre das nicht elegant?
- Ja, die Eigenschaften, die definiert sind in der tag -
<ReactComponent property="a large amount of html here wouldn't be very maintainable" />
. - Dein Beispiel von benannten Blöcken sieht aus wie Django, nicht einen Schluck?
Du musst angemeldet sein, um einen Kommentar abzugeben.
//header.js
//app.js
Do not use props to pass components as children
"Props und Zusammensetzung geben Ihnen alle Flexibilität, die Sie brauchen, um zu einer Komponente anpassen, das Aussehen und Verhalten in einer expliziten und sichere Art und Weise. Denken Sie daran, dass die Komponenten annehmen können beliebige Requisiten, einschließlich der primitiven Werte, Reagieren die Elemente-oder Funktionen."Können Sie behandeln Requisiten wie die Kinder, denn technisch
children
ist nur eine weitere requisite. Es ist nichts falsch mit diesem Ansatz Reagieren Mitwirkenden selbst schlage vor, Sie tun, dass (Unterstützung für mehrere untergeordnete einfügepunkte).Darüber hinaus, wenn Sie arbeiten in einem großen team von Ingenieuren, würde ich auch empfehlen, die Standardisierung, wie nennen Sie jene Requisiten sowie deren standard-Verhalten – Sie sind einfach nur Inhalte oder ein Rückruf kann man auch Argumente übergeben. reagieren-Platzhalter kann Ihnen dabei helfen. So, der code der Komponente kann beispielsweise so Aussehen:
Und dies ist, wie würden Sie einbetten, dass die Komponente