Prima di tutto vorrei dirvi che Reagire si basa su Javascript che è ovviamente orientata agli oggetti (ma non esattamente simile a linguaggi come Java, C++, e molte altre lingue tradional Object Oriented ) .
React stesso non applica alcuna tecnica orientata agli oggetti ma I componenti di reazione sono totalmente riutilizzabili. È possibile creare componenti generici da una casella di testo di input molto semplice, etichette a uno complesso e possono essere riutilizzati più volte.
se si proviene da JAVA mondo allora vorrei suggerire di utilizzare Javascript ES6 per ottenere il gusto di classe in maniera in qualche modo simile.
Un campione Reagire componente Javascript ES6
class Text extends React.Component {
render() {
return <p>{this.props.children}</p>;
}
}
React.render(<Text>Hello World</Text>, document.body);
Vedere come eredità sta lavorando qui
class Point {
constructor(x, y) {
this.x = x;
this.y = y;
}
toString() {
return '(' + this.x + ', ' + this.y + ')';
}
}
class CPoint extends Point {
constructor(x, y, color) {
super(x, y);
this.color = color;
}
toString() {
return super.toString() + ' in ' + this.color;
}
}
Tutto il codice che vedete è in Javascript!
Per Reagire si può dividere l'applicazione per avere componenti di presentazione e componenti container per una migliore usabilità e ri-strutturazione.
- componenti di presentazione: riguardato principalmente con la ricezione dei dati tramite oggetti di scena e la loro visualizzazione. Non specificano come i dati sono caricati o mutati e non hanno i loro stati.
Esempio
const Text = ({ children = 'Hello World!' }) => <p>{children}</p>
- componenti Contenitore: passa i dati e il comportamento di componenti contenitore di presentazione o altri. Hanno i loro stati. Puoi generare qui i dati e passarli ai componenti di presentazione.
Esempio
class Contacts extends React.Component {
constructor(props) {
super(props);
this.state = {
message:"new message"
};
}
render() {
return (
<div><Text children={this.state.message}/></div>
);
}
}
vorrei suggerire stare lontano da mixin. I mixaggi non sono supportati nelle classi ES6.
Javascript è orientato agli oggetti! –
penso che la reazione sia basata sul presupposto che OOP non è un modello di progettazione molto desiderabile per le app Web e tenta di superare molte delle complicazioni derivanti da molte cose che estendono molte cose e parlano di molte altre cose ... – dandavis
Google "composizione dei componenti" e leggere su questo - è un approccio molto migliore rispetto all'eredità, a mio parere. – Cymen