Ich benutze Meteor 1.4/React, um eine mittelgroße App zu bauen. Ich versuche also, die 'Best Practice' für das Datenhandling zwischen Meteor 1.4/React zu finden, die ich beim Erstellen meiner App befolgen soll.Meteor 1.4 - React Daten laden Techniken Best Practice
Derzeit verwende ich createContainer, um Daten zwischen Meteor und React-Komponenten zu behandeln, wie im folgenden Beispiel gezeigt.
Nachdem ich das gesagt habe, habe ich in vielen Artikeln/Forumsbeiträgen über die Verwendung von Meteor-Paketen/Features wie React Komposer, TrackerReact und React Document Container gelesen.
Also ich bin mir nicht sicher, welche von ihnen ist am besten für ein mittelgroßes Projekt zu folgen, das mit der Zeit größer wird. Also habe ich mich gefragt, ob jemand mit ähnlicher Erfahrung/versucht diese Pakete mit mir ihre Erfahrung teilen kann?
Vielen Dank im Voraus für Ihre Hilfe und Zeit
import React, { Component } from 'react';
import { createContainer } from 'meteor/react-meteor-data';
export default class DDOrganization extends Component {
getOrganizations(){
let org = this.props.org;
return Organizations.find({'name': {'$regex': org}});
}
renderOrganizations(){
return this.getOrganizations().bind(this).map((org) => {
return (
<li key={org._id}><a href="#" data-id={org._id} onClick={this.props.setOrgState}>{org.name}</a></li>
)
});
}
render(){
let {organizations} = this.props;
return (
<ul className="select-organization-list">
{this.renderOrganizations().bind(this)}
</ul>
)
}
};
export default createContainer(() => {
let organizations = {};
let {org} = this.props;
let orgSub = Meteor.subscribe("OrgSubscription", org);
if(orgSub.ready()){
organizations = Organizations.find({'name': {'$regex': org}}).fetch();
}
return {
organizations: organizations
}
}, DDOrganization);
Wenn ich Sie wäre, würde ich 'createContainer' vermeiden. Es gibt ein großes [Problem in der Implementierung] (https://github.com/meteor/react-packages/blob/devel/packages/react-meteor-data/ReactMeteorData.jsx#L102), das bewirkt, dass alle umschlossenen Subskriptionen vorhanden sind neu ausgewertet, wenn Ihre Berechnung durch eine reaktive Datenquelle ungültig gemacht wird. Das ist falsch, denn wenn sich Ihre Abonnementparameter nicht ändern, sollten die Daten aus diesem Abonnement intakt bleiben. –
Vielen Dank für Ihre Hilfe. Haben Sie etwas dagegen, mir zu sagen, was Sie als Alternative zu createContainer für ein mittelgroßes Meteor 1.4-Projekt empfehlen würden? Nachdem ich das gesagt habe, tut es mir leid, dass ich das hier nicht klar verstanden habe. Würden Sie bitte etwas ausdenken? Basierend auf dem, was ich bisher verstanden habe, sagst du, dass es alle Abonnements im Container neu bewertet, sogar diejenigen, die ihre Daten nicht auf dem Server geändert haben, habe ich das richtig verstanden? Danke – MChan
Kurz gesagt, ich schlage vor, 'reaktiv-komposer' zu verwenden. Ich werde später etwas mehr schreiben. –