React-dnd: Veuillez ajouter des exemples simples ES5

Créé le 19 juin 2015  ·  32Commentaires  ·  Source: react-dnd/react-dnd

Nous n'avons pas tous le luxe d'utiliser la nouvelle syntaxe ES7, ce serait beaucoup d'aide pour la surcharge d'informations des nouveaux arrivants s'il pouvait y avoir quelques exemples de travail qui n'introduisaient pas toutes ces nouvelles fonctionnalités de langage (en particulier les fonctionnalités expérimentales comme les décorateurs ES7) dans les exemples. L'utilité des exemples est diluée lorsqu'ils sont encombrés de fonctionnalités de langage expérimental.


Modifier depuis le responsable: veuillez les suivre ici:
https://github.com/vkbansal/react-dnd-es5-examples


Commentaire le plus utile

Forcer les gens à apprendre la syntaxe ES6 (et pire, ES7) juste pour comprendre votre exemple de code est _hostile_ at _best_. Cela ressemble à un module incroyable. Pourquoi ne pas au moins exporter la version ES5 de _un_ de vos exemples dans un dossier d'exemple ES5 pour les non-initiés. Dire que vous accepterez un PR n'est pas utile, car les personnes qui demandent les exemples ne connaissent probablement pas ES6 et ES7 pour commencer!

Le soupir.

Tous les 32 commentaires

Je suis heureux d'accepter une telle contribution.

Les exemples de tutoriels sont tous proposés dans ES5, ES6 et ES7:
http://gaearon.github.io/react-dnd/docs-tutorial.html

Chaque page de documentation a également des exemples dans ES5, ES6 et ES7:
http://gaearon.github.io/react-dnd/docs-drag-source.html
http://gaearon.github.io/react-dnd/docs-drop-target.html
etc

Malheureusement, je n'ai pas eu le temps de porter tout le code d'exemple, mais cela devrait vous aider à démarrer.

Il existe des exemples ES5 sur le site de documentation. http://gaearon.github.io/react-dnd/docs-overview.html

image

Je fais référence aux exemples fonctionnels complets dans le repo github.

Je suis d'accord que les exemples ES5 avec ES6 / 7 en option seraient préférables jusqu'à ce que ES6 / 7 soit courant. Il sera plus facile d'apprendre react-dnd si vous n'avez pas à apprendre un nouveau langage de programmation en même temps + transpiler vers ES5 pour faire fonctionner le code.

Je dirais que ES6 est déjà courant avec le langage en cours de finalisation et Babel utilisé dans des tonnes de projets.

Forcer les gens à apprendre la syntaxe ES6 (et pire, ES7) juste pour comprendre votre exemple de code est _hostile_ at _best_. Cela ressemble à un module incroyable. Pourquoi ne pas au moins exporter la version ES5 de _un_ de vos exemples dans un dossier d'exemple ES5 pour les non-initiés. Dire que vous accepterez un PR n'est pas utile, car les personnes qui demandent les exemples ne connaissent probablement pas ES6 et ES7 pour commencer!

Le soupir.

Je suis d'accord avec les gars ici, @gaearon vous ne devriez pas forcer les gens à apprendre ES6 / ES7 juste pour comprendre comment fonctionne la bibliothèque. Cela pourrait amener les gens à utiliser une autre bibliothèque à la place.
Cette bibliothèque est incroyable, la seule chose contre laquelle je dois argumenter est ce sujet. Je ne suis pas un expert JS (je suis un développeur Ruby) donc il m'est difficile de comprendre les exemples, simplement parce que vous utilisez une autre syntaxe (je ne suis pas contre la nouvelle syntaxe, mais lors du développement d'une bibliothèque, vous devriez adopter des normes traditionnelles), ce qui est ridicule.
Si vous voulez que cette bibliothèque soit la bibliothèque DnD standard pour React, vous devez corriger cela. Sinon, j'ai peur que les gens utilisent une autre solution "plus simple", qu'elle soit meilleure ou pire que la vôtre.

juste parce que vous utilisez une autre syntaxe

Pour info, ce n'est pas une autre syntaxe, c'est ES6, qui est JavaScript. Et si vous avez un problème avec la syntaxe ES6, vous devez également avoir un problème avec react, car il s'agit en fait d'une autre syntaxe.

mais lors du développement d'une bibliothèque, vous devez adopter les normes courantes

ES6 devient courant. io.js et react lui-même prend en charge ES6

Vous vous trompez.

  1. Consultez Wikipedia :

En informatique, la syntaxe d'un langage informatique est l'ensemble de règles qui définit les combinaisons de symboles qui sont considérées comme un document ou un fragment correctement structuré dans cette langue

Et:

ECMAScript 2015 (6e édition) est la version actuelle de la norme de spécification du langage ECMAScript

Oui, ES5 et ES6 sont tous deux JS, mais la syntaxe est différente.
2.

ES6 devient courant. io.js et react lui-même prend en charge ES6

«Devenir» et «support pour» signifient que vous savez que ES6 n'est pas encore grand public. Cela finira par le faire, mais en attendant, vous devriez donner des exemples dans ES5.

Si vous voulez tellement des exemples ES5, pourquoi ne faites-vous pas un effort pour y contribuer vous-même. @gaearon est une personne très occupée et travaille sur cette bibliothèque pendant son temps libre. Alors, au lieu d'exiger, essayez de contribuer, afin que d'autres puissent également en profiter.

Guys, propriétaire de projet, Gaearon, n'oblige personne à rien.

gaearon a déjà fait un travail formidable sur cette lib. Le projet est open source et offert gratuitement. L'accuser d'être hostile, ou comme s'il possède les utilisateurs quoi que ce soit est un peu hostile à mon humble avis.

Il a déclaré qu'il n'avait pas le temps de transférer les exemples vers es5 et qu'il était ouvert aux contributions. Il existe déjà des exemples dans es5 / 6/7. Et pour être honnête, la syntaxe n'est pas si différente.

De plus, vous pouvez utiliser un transpilateur, comme babel, pour transformer le code es6 / 7 en es5 et l'utiliser, l'examiner ou en tirer des leçons.

Personne n'oblige les gens à utiliser react-dnd, et ce n'est pas non plus le but de cette bibliothèque d'être la «seule et unique» solution.

@hakanderyal exactement mon point!

@hakanderyal nous n'en discutons pas ... vous avez raison, nous remercions tous @gaearon pour le travail formidable dans ce projet.

Nous savons qu'il n'y avait aucune intention malveillante d'écrire les exemples dans ES6. Personnellement, je n'accuse personne de cela. Néanmoins, je crois que ce numéro nous montre qu'il y a un besoin d'exemples ES5.

Oui, nous pourrions utiliser Babel, mais dans certains cas, vous ne voulez pas ajouter plus de complexité à votre projet en ajoutant plus de bibliothèques simplement parce que les exemples que vous avez en ont besoin. J'utilise React et ReactDnD dans un projet Rails et honnêtement, je ne veux pas avoir à gérer plus de transpilers et d'autres choses juste pour exécuter mon code.

De plus, certaines personnes (moi y compris) ne sont pas des experts JS, donc je pense que ce serait bien de garder les choses aussi simples que possible.

Tout contributeur existant ou nouveau pourrait prendre les devants sur ce problème et commencer à ajouter quelques exemples, pas seulement @gaearon

@ bismark64 @jeffreywescott @emergentcypher Voir # 214

: +1: Exceptionnel @vkbansal! Je vous remercie!

Merci, @vkbansal - vous

Salut les gens.

J'ai passé des semaines et des nuits de mon temps personnel à travailler sur ce projet et son site Web de documentation qui est le seul site Web de bibliothèque JS à ma connaissance qui montre des exemples de code ES5, ES6 et ES7 sur chaque page de documentation contenant du code. Je suis désolé de ne pas avoir été à la hauteur de vos attentes avec les exemples eux-mêmes!

Lorsque j'ai du temps libre après avoir passé des semaines et des nuits de mon temps personnel non rémunéré à travailler sur ma conférence React Europe, je pourrais peut-être considérer votre demande. En attendant, veuillez utiliser une autre bibliothèque ou demander à quelqu'un de vous aider avec des exemples ES5.

Voici quelques choses que je vous suggère de faire lorsque vous avez du temps libre:

Merci.

PS Un grand merci à @vkbansal.

Salut Gaearon,

La publication de votre code pour un usage public est très appréciée par la majorité des personnes qui l'utilisent.

Vous faites «avancer» les choses et vous le faites d'une manière publique… ni l'un ni l'autre n'est «facile».

Je suis totalement surpris (et je pense que la plupart des gens le seront) par les accusations que vous avez reçues
Par exemple, «forcer» les gens… et être «hostile»
... surtout lorsque vous avez invité des contributions

Votre réponse à ces attaques est beaucoup plus restreinte que la mienne ne recevrait la même provocation.

Ne soyez pas rebutés par cette minorité négative

merci beaucoup pour le code et les idées

Stu

Veuillez respecter mon souhait de ne pas continuer cette discussion. Je ne veux plus envoyer de spam aux personnes qui regardent ce dépôt.

Je ne verrouille pas le problème, mais si un autre commentaire est posté, je m'attendrais à ce que ce soit un commentaire utile reliant plus de PR ou quelque chose de ce genre, pas un commentaire de «discussion». Nous pouvons déformer les mots pour toujours et «entendre les deux côtés», mais je ne vois pas l'intérêt.

Je comprends votre inquiétude: vous avez besoin d'exemples ES5 et ne voulez pas apprendre ES6 / 7 pour le moment. Une position totalement valable à avoir. Ma position pour le moment est que je suis _physiquement incapable_ de travailler sur ces exemples. Je pourrais peut-être le faire à l'avenir. Pour le moment, je ne peux rien faire pour vous aider, sauf pour souligner cette excellente ressource d'apprentissage ES6 (c'est ainsi que je l'ai appris moi-même).

De plus, si je devais me concentrer sur ces exemples, je n'aurais pas du tout livré 1.0. C'était une réduction nécessaire pour sortir la 1.0 parce que je devais commencer à travailler sur mon discours juste après. Vous pouvez utiliser React DnD 0.9.2 qui est la dernière version pour avoir des exemples ES5 . Notez qu'il diffère considérablement de 1.0.

Enfin, il existe une certaine étiquette open source, et certaines des phrases dans les commentaires ci-dessus la violent. Si vous ne voyez pas cela, c'est votre problème, pas le mien. Briser cette étiquette est l'une des raisons pour lesquelles les responsables s'épuisent et abandonnent leurs projets populaires. Vous pourriez penser que votre plainte était valide et que vous vous entendiez bien, mais elle est totalement hors de propos. Il est vraiment difficile de comprendre cela jusqu'à ce que vous mettiez de la sueur et du sang dans votre propre projet et que vous ayez un problème similaire.

Pour résumer, si c'est un fil conducteur plus loin, je suis content. Si c'est «qui est en faute», je le verrouille.
Merci.

Vous avez tout à fait raison @stooboo et @gaearon. Je m'excuse si mes commentaires ci-dessus ont enfreint cette étiquette et que vous vous êtes senti accusé ou que j'ai été irrespectueux envers vous. Je sais que maintenir un tel projet demande beaucoup d'efforts et de temps, et vous vous en sortez très bien jusqu'à présent, donc je vous en suis reconnaissant. Mon intention était seulement de signaler cette préoccupation.
Dit cela, nous devrions passer dessus et laisser ce fil évoluer comme d'habitude.

Je me sens honteux et embarrassé. Je suis vraiment désolé pour mes commentaires, @gaearon. Ce n'est pas une excuse, mais cette semaine a été difficile pour moi, et dans un moment de frustration, je me suis déchaîné. Vraiment désolé, et merci beaucoup pour cette incroyable bibliothèque .

Permettez-moi également de fournir un contexte. La raison pour laquelle les exemples ne sont pas écrits dans ES5 est que la principale _reason_ que j'ai écrite 1.0 était des personnes ayant des difficultés à utiliser 0.x à partir des classes ES6: # 109.

Il serait idiot de publier 1.0 «résoudre» le problème de la classe ES6 sans classes ES6 dans les exemples. C'est pourquoi j'ai décidé d'utiliser ES6 plus loin.

Si vous utilisez React, les chances sont élevées que vous ayez déjà une étape de construction. Vous avez besoin de compiler JSX, non? (La plupart des gens l'utilisent.) Si vous avez déjà une étape de construction, il ne vous coûte littéralement rien de remplacer l'étape de construction JSX par l'étape de construction Babel. En fait, c'est ce que Facebook va faire aussi.

Je m'attendais à devoir quitter cette bibliothèque pendant un certain temps parce que je savais que j'avais besoin de travailler sur mon discours. Par conséquent, j'ai choisi de le construire _ en regardant vers l'avant, plutôt que derrière_, afin qu'il puisse vivre quelque temps seul sans mon intervention.

@jeffreywescott Pas de problème, et vous êtes les bienvenus. Merci d'avoir dit désolé. J'apprécie vraiment et je sais qu'il peut être difficile d'admettre avoir tort.

: +1:

@gaearon @emergentcypher @awarberg @jeffreywescott @ bismark64

J'ai suivi le tutoriel principalement ES5 (parce que je suis trop lent pour apprendre ES6, mais je le ferai finalement, j'utilise JSX, évidemment, et déstructurant ): https://github.com/jehoshua02/react-dnd-experiment

Veuillez suivre les exemples ES5 ici:
https://github.com/vkbansal/react-dnd-es5-examples

Un grand merci à @vkbansal.

J'ai enfin le temps de le terminer: http://vkbansal.github.io/react-dnd-es5-examples/

Ce n'était pas mon intention d'élever les émotions des gens, je veux seulement aider la bibliothèque à devenir accessible et j'étais surtout préoccupé par les exemples contenant des fonctionnalités expérimentales d'ES7 qui, même si je passe à ES6, n'utiliseront toujours pas. Je pense qu'il est important de continuer à pousser la communauté de développement vers ES6 maintenant qu'il a été finalisé et je pense certainement que @gearon a fait le bon choix en traitant le code ES6 comme sa priorité, et je m'excuse si j'ai mal formulé mon commentaire initial.

Pour commenter les étapes de construction, mon environnement de construction a une étape de construction JSX, mais comme mon environnement de construction n'est pas Node.js mais géré dans un autre langage, ce n'est pas nécessairement aussi simple que de «brancher» Babel au lieu de JSX, surtout si vous travaillez dans une équipe dont vous n'êtes pas nécessairement responsable de la construction.

Merci @vkbansal et merci @gaearon pour tout votre travail en premier lieu.

  • Alors que la majorité de toutes les personnes impliquées entrent à peine dans ES6,
  • Alors que le transpilage de ES7 à ES5 entraîne souvent un code désagréable à déchiffrer,
  • Alors que toutes les fonctions ES7 sont toujours considérées comme expérimentales,

Veuillez supprimer toutes les utilisations d'ES7

L'utilisation d'ES7 pour la simplicité syntaxique / la concision ne fonctionne que si toutes les personnes impliquées connaissent les variantes historiques de la syntaxe.

@vkbansal merci d'avoir rassemblé ces exemples.


Exemple du deuxième élément:

Code propre:

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));

Sortie transpilée (de l' exemple ):

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: a fait référence par erreur à @emergentcypher comme auteur de l'exemple es5.

Es-tu ivre?
Désolé! commenté au mauvais endroit!

@adamellsworth Personne ne vous oblige à utiliser ES7. Si vous ne souhaitez pas l'utiliser, ne le faites pas, mais vous n'avez pas le droit de dire à l'auteur ce qu'il doit faire.

Les gens ont parfaitement le droit de faire des commentaires! C'est la grande chose à propos de l'open source. Je ne pense pas que le fait de dire "s'il vous plaît, supprimez" est de diriger l'auteur. Si l'auteur ne voulait pas recevoir de commentaires et de demandes, il ne devrait pas publier de travail sur github.

Puisque nous avons maintenant des exemples ES5, je vais juste fermer cela moi-même :)

Les gens ont parfaitement le droit de faire des commentaires! C'est la grande chose à propos de l'open source.

@emergentcypher vous avez raison.

@gaearon est pleinement conscient que tout le monde n'est pas à l'aise avec ES7, c'est pourquoi il a pris le temps de mettre des exemples ES6 et ES5 sur le site.

Si l'auteur ne voulait pas recevoir de commentaires et de demandes, il ne devrait pas publier de travail sur github.

Oui, l'auteur souhaite recevoir des commentaires et des retours mais qui sont constructifs .

Demander à l'auteur de supprimer complètement quelque chose simplement parce que vous ne l'utilisez pas, équivaut à aller vers votre patron et à lui demander de renvoyer l'un de vos collègues simplement parce que vous n'aimez pas son visage.

Cette page vous a été utile?
0 / 5 - 0 notes