React-dnd: Bitte fügen Sie einfache ES5-Beispiele hinzu

Erstellt am 19. Juni 2015  ·  32Kommentare  ·  Quelle: react-dnd/react-dnd

Nicht alle von uns haben den Luxus, die neue ES7-Syntax zu verwenden. Es wäre eine große Hilfe für die Informationsüberflutung von Neulingen, wenn es ein paar Arbeitsbeispiele geben könnte, die nicht alle diese neuen Sprachfunktionen einführen (insbesondere experimentelle Funktionen wie ES7-Dekoratoren). in den Beispielen. Die Nützlichkeit von Beispielen wird verwässert, wenn sie mit experimentellen Sprachmerkmalen überfüllt sind.


Vom Betreuer bearbeiten: Bitte verfolgen Sie sie hier:
https://github.com/vkbansal/react-dnd-es5-examples


Hilfreichster Kommentar

Menschen zu zwingen, die ES6-Syntax (und noch schlimmer die ES7-Syntax) zu lernen, nur um Ihren Beispielcode zu verstehen, ist _hostile_ at _best_. Das sieht nach einem erstaunlichen Modul aus. Warum exportieren Sie nicht zumindest die ES5-Version von _one_ Ihrer Beispiele in einen ES5-Beispielordner für Uneingeweihte? Zu sagen, dass Sie eine PR akzeptieren, ist nicht hilfreich, da die Leute, die nach den Beispielen fragen, mit ES6 und ES7 wahrscheinlich zunächst nicht vertraut sind!

Le seufzt.

Alle 32 Kommentare

Ich nehme diesen Beitrag gerne an.

Die Tutorial-Beispiele werden alle in ES5, ES6 und ES7 angeboten:
http://gaearon.github.io/react-dnd/docs-tutorial.html

Jede Dokumentseite enthält auch Beispiele in ES5, ES6 und ES7:
http://gaearon.github.io/react-dnd/docs-drag-source.html
http://gaearon.github.io/react-dnd/docs-drop-target.html
usw

Leider hatte ich nicht die Zeit, den gesamten Beispielcode zu portieren, aber dies sollte Ihnen den Einstieg erleichtern.

Auf der Dokumentationsseite finden Sie ES5-Beispiele. http://gaearon.github.io/react-dnd/docs-overview.html

image

Ich beziehe mich auf die vollständigen Funktionsbeispiele im Github-Repo.

Ich bin damit einverstanden, dass ES5-Beispiele mit optionalem ES6 / 7 vorzuziehen sind, bis ES6 / 7 Mainstream ist. Es wird einfacher sein, React-Dnd zu lernen, wenn Sie nicht gleichzeitig eine neue Programmiersprache lernen müssen + auf ES5 transpilieren müssen, damit der Code ausgeführt wird.

Ich würde behaupten, dass ES6 bereits Mainstream ist, da die Sprache finalisiert und Babel in Tonnen von Projekten verwendet wird.

Menschen zu zwingen, die ES6-Syntax (und noch schlimmer die ES7-Syntax) zu lernen, nur um Ihren Beispielcode zu verstehen, ist _hostile_ at _best_. Das sieht nach einem erstaunlichen Modul aus. Warum exportieren Sie nicht zumindest die ES5-Version von _one_ Ihrer Beispiele in einen ES5-Beispielordner für Uneingeweihte? Zu sagen, dass Sie eine PR akzeptieren, ist nicht hilfreich, da die Leute, die nach den Beispielen fragen, mit ES6 und ES7 wahrscheinlich zunächst nicht vertraut sind!

Le seufzt.

Ich stimme den Leuten hier zu, @gaearon, Sie sollten die Leute nicht zwingen, ES6 / ES7 zu lernen, nur um zu verstehen, wie die Bibliothek funktioniert. Dies könnte dazu führen, dass die Leute stattdessen eine andere Bibliothek verwenden.
Diese Bibliothek ist erstaunlich, das einzige, was ich dagegen argumentieren muss, ist dieses Thema. Ich bin kein JS-Experte (ich bin ein Ruby-Entwickler), daher fällt es mir schwer, die Beispiele zu verstehen, nur weil Sie eine andere Syntax verwenden (ich bin nicht gegen die neue Syntax, aber wenn Sie eine Bibliothek entwickeln, sollten Sie dies tun Mainstream-Standards übernehmen), was lächerlich ist ..
Wenn Sie möchten, dass diese Bibliothek die Standard-DnD-Bibliothek für React ist, müssen Sie dies korrigieren. Andernfalls befürchte ich, dass die Leute eine andere "einfachere" Lösung verwenden, egal ob sie besser oder schlechter ist als Ihre.

nur weil Sie eine andere Syntax verwenden

Zu Ihrer Information, dies ist keine andere Syntax. Es ist ES6, JavaScript. Und wenn Sie Probleme mit der ES6-Syntax haben, müssen Sie auch Probleme mit der Reaktion haben, da es sich tatsächlich um eine andere Syntax handelt.

Bei der Entwicklung einer Bibliothek sollten Sie jedoch die gängigen Standards übernehmen

ES6 wird zum Mainstream. io.js und reagieren selbst hat Unterstützung für ES6

Du liegst falsch.

  1. Schauen Sie sich Wikipedia an :

In der Informatik ist die Syntax einer Computersprache das Regelwerk, das die Kombinationen von Symbolen definiert, die als korrekt strukturiertes Dokument oder Fragment in dieser Sprache betrachtet werden

Und:

ECMAScript 2015 (6. Ausgabe) ist die aktuelle Version des ECMAScript- Sprachspezifikationsstandards

Ja, sowohl ES5 als auch ES6 sind JS, aber die Syntax ist unterschiedlich.
2.

ES6 wird zum Mainstream. io.js und reagieren selbst hat Unterstützung für ES6

"Werden" und "Unterstützung für" bedeutet, dass Sie wissen, dass ES6 noch kein Mainstream ist. Es wird schließlich, aber in der Zwischenzeit sollten Sie Beispiele in ES5 geben.

Wenn Sie ES5-Beispiele so sehr wollen, warum bemühen Sie sich nicht, sie selbst beizutragen? @gaearon ist sehr beschäftigt und arbeitet in seiner Freizeit an dieser Bibliothek. Versuchen Sie also nicht zu fordern, einen Beitrag zu leisten, damit auch andere davon profitieren können.

Jungs, Projektbesitzer, Gaearon, zwingt niemanden zu irgendetwas.

gaearon hat bereits eine enorme arbeit an dieser lib geleistet. Das Projekt ist Open Source und wird kostenlos angeboten. Ihm vorzuwerfen, feindselig zu sein oder die Benutzer zu besitzen, ist meiner Meinung nach irgendwie feindselig.

Er erklärte, er habe keine Zeit, die Beispiele auf es5 zu portieren, und er sei offen für Beiträge. Es gibt bereits Beispiele in es5 / 6/7. Und um ehrlich zu sein, ist die Syntax nicht so unterschiedlich.

Sie können auch einen Transpiler wie babel verwenden, um den es6 / 7-Code in es5 umzuwandeln und ihn zu verwenden, zu untersuchen oder daraus zu lernen.

Niemand zwingt die Leute dazu, React-Dnd zu verwenden, und es ist auch nicht der Zweck dieser Bibliothek, die "einzige" Lösung zu sein.

@akanderyal genau mein Punkt!

@hakanderyal wir diskutieren das nicht .. Sie haben Recht, wir alle danken @gaearon für die enorme Arbeit in diesem Projekt.

Wir wissen, dass es keine böswillige Absicht gab, die Beispiele in ES6 zu schreiben. Persönlich beschuldige ich niemanden. Trotzdem glaube ich, dass diese Ausgabe uns zeigt, dass ES5-Beispiele benötigt werden.

Ja, wir könnten Babel verwenden, aber in einigen Fällen möchten Sie Ihrem Projekt keine größere Komplexität hinzufügen, indem Sie mehr Bibliotheken hinzufügen, nur weil die Beispiele, die Sie haben, diese erfordern. Ich verwende React und ReactDnD in einem Rails-Projekt und möchte ehrlich gesagt nicht mit mehr Transpilern und anderen Dingen umgehen, nur um meinen Code auszuführen.

Außerdem sind einige Leute (ich selbst eingeschlossen) keine JS-Experten, daher denke ich, dass es schön wäre, die Dinge so einfach wie möglich zu halten.

Jeder bestehende oder neue Mitwirkende könnte die Führung in diesem Bereich übernehmen und einige Beispiele hinzufügen, nicht nur @gaearon

@ bismark64 @jeffreywescott @emergentcypher Siehe # 214

: +1: Hervorragendes @vkbansal! Vielen Dank!

Danke, @vkbansal - du

Hallo Leute.

Ich habe Wochen und Nächte meiner persönlichen Zeit damit verbracht, an diesem Projekt und seiner Dokumentationswebsite zu arbeiten. Dies ist die einzige mir bekannte JS-Bibliothekswebsite, auf der ES5-, ES6- und ES7-Codebeispiele auf jeder Dokumentenseite angezeigt werden, die Code enthält. Es tut mir leid, dass ich Ihre Erwartungen mit den Beispielen selbst nicht ganz erfüllt habe!

Wenn ich nach Wochen und Nächten meiner persönlichen unbezahlten Zeit an meinem React Europe-Vortrag etwas Freizeit habe, kann ich Ihre Anfrage berücksichtigen. Verwenden Sie in der Zwischenzeit eine andere Bibliothek oder bitten Sie jemanden, Ihnen mit ES5-Beispielen zu helfen.

Ich schlage vor, dass Sie einige Dinge tun, wenn Sie etwas Freizeit haben:

Vielen Dank.

PS Vielen Dank an @vkbansal.

Hallo Gaearon,

Die Freigabe Ihres Codes für die öffentliche Nutzung wird von der Mehrheit der Benutzer sehr geschätzt.

Sie treiben die Dinge "voran" und tun dies auf öffentliche Weise. Keines davon ist "einfach".

Ich bin total überrascht (und ich denke, die meisten Leute werden es sein) von den Anschuldigungen, die Sie erhalten haben
zB Leute "zwingen" ... und "feindlich" sein
... besonders wenn Sie Beiträge eingeladen haben

Ihre Reaktion auf diese Angriffe ist viel zurückhaltender als meine, die die gleiche Provokation erhalten würde.

Bitte lassen Sie sich von dieser negativen Minderheit nicht abschrecken

Vielen Dank für den Code und die Ideen

Stu

Bitte respektiere meinen Wunsch, diese Diskussion nicht fortzusetzen. Ich möchte keine Leute mehr spammen, die dieses Repo sehen.

Ich sperre das Problem nicht, aber wenn ein anderer Kommentar veröffentlicht wird, würde ich erwarten, dass dies ein nützlicher Kommentar ist, der auf mehr PRs oder ähnliches verweist, und kein "Diskussions" -Kommentar. Wir können uns gegenseitig für immer verdrehen und „beide Seiten hören“, aber ich verstehe den Punkt nicht.

Ich verstehe Ihr Anliegen: Sie benötigen ES5-Beispiele und möchten im Moment nicht ES6 / 7 lernen. Eine absolut gültige Position zu haben. Meine Position im Moment ist, dass ich physisch nicht in der Lage bin, an diesen Beispielen zu arbeiten. Ich könnte in Zukunft dazu in der Lage sein. Im Moment kann ich nichts tun, um Ihnen zu helfen, außer auf diese großartige ES6-Lernressource hinzuweisen (so habe ich sie selbst gelernt).

Wenn ich mich auf diese Beispiele konzentrieren würde, hätte ich 1.0 überhaupt nicht ausgeliefert. Es war eine notwendige Kürzung, um 1.0 herauszubringen, da ich gleich danach anfangen musste, an meinem Vortrag zu arbeiten. Sie können React DnD 0.9.2 verwenden, die neueste Version mit ES5-Beispielen . Beachten Sie, dass es sich erheblich von 1.0 unterscheidet.

Schließlich gibt es eine bestimmte Open-Source-Etikette, und einige der Sätze in den obigen Kommentaren verstoßen dagegen. Wenn Sie das nicht sehen, ist dies Ihr Problem, nicht meins. Das Brechen dieser Etikette ist einer der Gründe, warum Betreuer ihre beliebten Projekte ausbrennen und verlassen. Sie könnten denken, Ihre Beschwerde sei gültig und Sie hätten es gut gemeint, aber es ist völlig irrelevant. Es ist wirklich schwer, dies wirklich zu verstehen, bis Sie Schweiß und Blut in Ihr eigenes Projekt gesteckt haben und ein ähnliches Problem haben.

Zusammenfassend bin ich glücklich, wenn dies ein produktiver Thread ist. Wenn es "wer ist schuld" ist, werde ich es sperren.
Vielen Dank.

Du hast vollkommen recht mit @stooboo und @gaearon. Ich entschuldige mich, wenn meine obigen Kommentare gegen diese Etikette verstoßen haben und Sie sich beschuldigt fühlten oder ich Ihnen gegenüber respektlos war. Ich weiß, dass die Aufrechterhaltung eines solchen Projekts viel Aufwand und Zeit erfordert, und Sie machen es bisher großartig, deshalb bin ich dafür dankbar. Meine Absicht war es nur, auf diese Besorgnis hinzuweisen.
Sagte, wir sollten darüber hinweggehen und diesen Thread wie gewohnt weiterentwickeln lassen.

Ich schäme mich und schäme mich. Es tut mir wirklich leid für meine Kommentare, @gaearon. Es ist keine Entschuldigung, aber diese Woche war eine schwierige für mich, und in einem Moment der Frustration schlug ich zu. Es tut mir wirklich leid und ich danke Ihnen vielmals für diese erstaunliche Bibliothek .

Lassen Sie mich auch einen Kontext angeben. Der Grund, warum Beispiele nicht in ES5 geschrieben sind, ist, dass der Hauptgrund, den ich 1.0 geschrieben habe, Leute waren, die Probleme mit der Verwendung von 0.x aus ES6-Klassen hatten: # 109.

Es wäre dumm, 1.0 zu veröffentlichen, um das ES6-Klassenproblem ohne ES6-Klassen in den Beispielen zu lösen. Daher habe ich mich entschieden, ES6 weiter zu verwenden.

Wenn Sie React verwenden, ist die Wahrscheinlichkeit hoch, dass Sie bereits einen Build-Schritt haben. Sie müssen JSX kompilieren, oder? (Die meisten Leute verwenden es.) Wenn Sie bereits einen Build-Schritt haben, kostet es Sie buchstäblich nichts, den JSX-Build-Schritt durch den Babel-Build-Schritt zu ersetzen. Genau das wird Facebook auch tun.

Ich hatte erwartet, dass ich diese Bibliothek für eine Weile verlassen musste, um zu hängen, weil ich wusste, dass ich an meinem Vortrag arbeiten musste. Aus diesem Grund habe ich mich dafür entschieden, es so zu bauen, dass es eher nach vorne als nach hinten schaut, damit es einige Zeit für sich alleine leben kann, ohne dass ich eingreifen muss.

@ Jeffreyreycott Kein Problem, und Sie sind herzlich willkommen. Danke, dass Sie sich entschuldigt haben. Ich weiß es wirklich zu schätzen und ich weiß, dass es schwierig sein kann, zuzugeben, dass ich falsch liege.

: +1:

@gaearon @emergentcypher @awarberg @jeffreywescott @ bismark64

Ich folgte dem Tutorial hauptsächlich ES5 (weil auch ich ES6 nur langsam lerne, aber irgendwann werde ich natürlich JSX verwenden und destrukturieren ): https://github.com/jehoshua02/react-dnd-experiment

Bitte verfolgen Sie die ES5-Beispiele hier:
https://github.com/vkbansal/react-dnd-es5-examples

Vielen Dank an @vkbansal.

Endlich etwas Zeit, um es zu beenden: http://vkbansal.github.io/react-dnd-es5-examples/

Es war nicht meine Absicht, die Emotionen der Menschen zu wecken, ich möchte nur dazu beitragen, dass die Bibliothek zugänglich wird, und ich war hauptsächlich besorgt über die Beispiele mit experimentellen ES7-Funktionen, die, selbst wenn ich zu ES6 wechsle, immer noch nicht verwendet werden. Ich denke, es ist wichtig, die Entwickler-Community nach ihrer Fertigstellung weiter auf ES6 zu @gearon hat die richtige Wahl getroffen, um ES6-Code als seine Priorität zu behandeln, und ich entschuldige mich, wenn ich meinen ursprünglichen Kommentar schlecht formuliert habe.

Um die Erstellungsschritte zu kommentieren, verfügt meine Erstellungsumgebung über einen JSX-Erstellungsschritt. Da meine Erstellungsumgebung jedoch nicht Node.js ist, sondern in einer anderen Sprache verarbeitet wird, ist es nicht unbedingt so einfach, Babel anstelle von JSX "einzustecken", insbesondere wenn Sie arbeiten in einem Team, in dem Sie nicht unbedingt für den Build verantwortlich sind.

Vielen Dank an @vkbansal und an @gaearon für all Ihre Arbeit.

  • Während die Mehrheit aller Beteiligten kaum an ES6 teilnimmt,
  • Während das Transpilieren von ES7 zu ES5 häufig zu Code führt, dessen Entschlüsselung unangenehm ist,
  • Während alle ES7-Funktionen noch als experimentell gelten,

Bitte entfernen Sie alle Anwendungen von ES7

Die Verwendung von ES7 für syntaktische Einfachheit / Prägnanz funktioniert nur, wenn alle Beteiligten die historischen Varianten der Syntax kennen.

@vkbansal danke, dass hast .


Beispiel für den zweiten Punkt:

Code reinigen:

var DragSourceDecorator = DragSource(ItemTypes.CARD, cardSource,
    function(connect, monitor) {
        return {
            connectDragSource: connect.dragSource(),
            isDragging: monitor.isDragging()
        };
});

var DropTargetDecorator = DropTarget(ItemTypes.CARD, cardTarget,
    function(connect) {
        return {
            connectDropTarget: connect.dropTarget()
        };
});

module.exports = DropTargetDecorator(DragSourceDecorator(Card));

Transpiled Output (aus dem Beispiel ):

Card = (0, _reactDnd.DragSource)(_ItemTypes2['default'].CARD, cardSource, function (connect, monitor) {
    return {
      connectDragSource: connect.dragSource(),
      isDragging: monitor.isDragging()
    };
  })(Card) || Card;
  Card = (0, _reactDnd.DropTarget)(_ItemTypes2['default'].CARD, cardTarget, function (connect) {
    return {
      connectDropTarget: connect.dropTarget()
    };
  })(Card) || Card;
  return Card;

edit: @emergentcypher wurde fälschlicherweise als es5-Beispielautor bezeichnet.

Bist du betrunken?
Es tut uns leid! am falschen Ort kommentiert!

@adamellsworth Niemand zwingt Sie, ES7 zu verwenden. Wenn Sie es nicht verwenden möchten, tun Sie es nicht, aber Sie haben kein Recht, dem Autor zu sagen, was zu tun ist.

Die Leute haben jedes Recht, Kommentare abzugeben! Das ist das Tolle an Open Source. Ich glaube nicht, dass "Bitte entfernen" den Autor herumkommandiert. Wenn der Autor keine Kommentare und Anfragen erhalten wollte, sollte er keine Arbeiten auf Github veröffentlichen.

Da wir jetzt ES5-Beispiele haben, schließe ich das einfach selbst :)

Die Leute haben jedes Recht, Kommentare abzugeben! Das ist das Tolle an Open Source.

@emergentcypher du hast recht.

@gaearon ist sich völlig bewusst, dass nicht alle Menschen mit ES7 vertraut sind. Deshalb hat er sich die Zeit genommen, ES6- und ES5-Beispiele auf der Website einzufügen.

Wenn der Autor keine Kommentare und Anfragen erhalten wollte, sollte er keine Arbeiten auf Github veröffentlichen.

Ja, der Autor möchte Kommentare und Feedback erhalten, die jedoch konstruktiv sind .

Wenn Sie den Autor bitten, etwas vollständig zu entfernen, nur weil Sie es nicht verwenden, bedeutet dies, dass

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen