React-dnd: Пожалуйста, добавьте простые примеры ES5

Созданный на 19 июн. 2015  ·  32Комментарии  ·  Источник: react-dnd/react-dnd

Не все из нас могут позволить себе роскошь использовать новомодный синтаксис ES7, было бы очень полезно при перегрузке информации для новичков, если бы могла быть пара рабочих примеров, в которых не были представлены все эти новые языковые функции (особенно экспериментальные функции, такие как декораторы ES7) в примерах. Полезность примеров уменьшается, когда они загромождены экспериментальными языковыми функциями.


Редактировать от сопровождающего: отслеживайте их здесь:
https://github.com/vkbansal/react-dnd-es5-examples


Самый полезный комментарий

Заставлять людей изучать синтаксис ES6 (и, что еще хуже, ES7) только для того, чтобы понять ваш пример кода, - это враждебно и лучше всего. Выглядит как потрясающий модуль. Почему бы хотя бы не экспортировать ES5-версию _one_ ваших примеров в папку ES5-example для непосвященных. Сказать, что вы примете PR, бесполезно, поскольку люди, которые просят примеры, скорее всего, не знакомы с ES6 и ES7 с самого начала!

Ле вздохнул.

Все 32 Комментарий

Я счастлив принять такой вклад.

Все учебные примеры предлагаются в ES5, ES6 и ES7:
http://gaearon.github.io/react-dnd/docs-tutorial.html

На каждой странице документации также есть примеры в ES5, ES6 и ES7:
http://gaearon.github.io/react-dnd/docs-drag-source.html
http://gaearon.github.io/react-dnd/docs-drop-target.html
и т.д

К сожалению, у меня не было времени перенести весь пример кода, но это должно помочь вам начать работу.

На сайте документации есть примеры ES5. http://gaearon.github.io/react-dnd/docs-overview.html

image

Я имею в виду полные функциональные примеры в репозитории github.

Я согласен, что примеры ES5 с дополнительным ES6 / 7 будут предпочтительнее, пока ES6 / 7 не станет основным. Будет легче выучить response-dnd, если вам не нужно одновременно изучать новый язык программирования + перенос на ES5 для запуска кода.

Я бы сказал, что ES6 уже стал мейнстримом, язык дорабатывается, а Babel используется в тоннах проектов.

Заставлять людей изучать синтаксис ES6 (и, что еще хуже, ES7) только для того, чтобы понять ваш пример кода, - это враждебно и лучше всего. Выглядит как потрясающий модуль. Почему бы хотя бы не экспортировать ES5-версию _one_ ваших примеров в папку ES5-example для непосвященных. Сказать, что вы примете PR, бесполезно, поскольку люди, которые просят примеры, скорее всего, не знакомы с ES6 и ES7 с самого начала!

Ле вздохнул.

Я согласен с ребятами здесь, @gaearon, вы не должны заставлять людей изучать ES6 / ES7 только для того, чтобы понять, как работает библиотека .. Это может побудить людей использовать другую библиотеку.
Эта библиотека потрясающая, единственное, против чего я должен возражать, - это эта тема. Я не эксперт по JS (я разработчик Ruby), поэтому мне трудно понять примеры только потому, что вы используете другой синтаксис (я не против нового синтаксиса, но при разработке библиотеки вам следует принять общепринятые стандарты), что смешно.
Если вы хотите, чтобы эта библиотека была стандартной библиотекой DnD для React, вы должны это исправить. Иначе, боюсь, люди воспользуются другим «более легким» решением, неважно, лучше оно или хуже вашего ..

просто потому, что вы используете другой синтаксис

К вашему сведению, это не другой синтаксис, это ES6, который является JavaScript. И если у вас есть проблемы с синтаксисом ES6, у вас также должна быть проблема с реакцией, потому что на самом деле это другой синтаксис.

но при разработке библиотеки вы должны принять основные стандарты

ES6 становится мейнстримом. io.js и сама реакция поддерживают ES6.

Вы ошибаетесь.

  1. Загляните в Википедию :

В информатике синтаксис компьютерного языка - это набор правил, определяющих комбинации символов, которые считаются правильно структурированным документом или фрагментом на этом языке.

И:

ECMAScript 2015 (6-е издание) - текущая версия стандарта ECMAScript Language Specification.

Да, и ES5, и ES6 являются JS, но синтаксис отличается.
2.

ES6 становится мейнстримом. io.js и сама реакция поддерживают ES6.

«Становление» и «поддержка» означает, что вы знаете, что ES6 еще не является мейнстримом. В конце концов, так и будет, но пока вы должны приводить примеры на ES5.

Если вам так сильно нужны примеры ES5, почему бы вам, ребята, не попытаться внести свой вклад самостоятельно. @gaearon очень занятой человек и работает над этой библиотекой в ​​свободное время. Поэтому вместо того, чтобы требовать, постарайтесь внести свой вклад, чтобы другие также могли извлечь из этого пользу.

Ребята, владелец проекта, gaearon, никого ни к чему не принуждает.

gaearon уже проделал огромную работу над этой библиотекой. Проект с открытым исходным кодом и предлагается бесплатно. ИМХО обвинять его во враждебности или в том, что он владеет чем-то пользователями, довольно враждебно.

Он заявил, что у него нет времени переносить примеры на es5, и он открыт для участия. Примеры уже есть в es5 / 6/7. И, честно говоря, синтаксис не сильно отличается.

Кроме того, вы можете использовать транспилятор, такой как babel, для преобразования кода es6 / 7 в es5 и использовать его, изучать или учиться на нем.

Никто не заставляет людей использовать response-dnd, и цель этой библиотеки - быть «единственным и неповторимым» решением.

@hakanderyal именно мою точку зрения!

@hakanderyal, мы не обсуждаем это ... вы правы, мы все благодарим @gaearon за огромную работу над этим проектом.

Мы знаем, что не было злонамеренного намерения писать примеры на ES6. Лично я никого в этом не обвиняю. Тем не менее, я считаю, что эта проблема показывает нам, что нужны примеры ES5.

Да, мы могли бы использовать Babel, но в некоторых случаях вы не хотите усложнять свой проект, добавляя дополнительные библиотеки только потому, что они требуются в ваших примерах. Я использую React и ReactDnD в проекте Rails, и, честно говоря, я не хочу иметь дело с другими транспиляторами и прочим только для запуска моего кода ...

Кроме того, некоторые люди (в том числе и я) не являются экспертами по JS, поэтому я думаю, что было бы неплохо, чтобы все было как можно проще.

Любой существующий или новый участник может возглавить эту проблему и начать добавлять несколько примеров, а не только @gaearon

@ bismark64 @jeffreywescott @emergentcypher См. № 214

: +1: Замечательный @vkbansal! Спасибо!

Спасибо, @vkbansal - ты

Эй, ребята.

Я провел недели и ночи своего личного времени, работая над этим проектом и его веб-сайтом документации, который является единственным известным мне веб-сайтом библиотеки JS, который показывает примеры кода ES5, ES6 и ES7 на каждой странице документации, содержащей некоторый код. Мне очень жаль, что я не совсем оправдал ваши ожидания с самими примерами!

Когда у меня появится свободное время после того, как я потрачу недели и ночи своего личного неоплачиваемого времени, работая над докладом на React Europe, я могу рассмотреть вашу просьбу. А пока используйте другую библиотеку или попросите кого-нибудь помочь вам с примерами ES5.

Вот несколько вещей, которые я предлагаю вам сделать, когда у вас появится свободное время:

Благодарю.

PS Огромное спасибо @vkbansal.

Привет, Gaearon,

Выпуск вашего кода для публичного использования очень ценится большинством людей, использующих его.

Вы продвигаете вещи «вперед» и делаете это публично… ни то, ни другое не «легко».

Я полностью удивлен (и я думаю, что большинство людей так и будет) полученными вами обвинениями
например, "принуждение" к людям ... и "враждебность"
... особенно если вы пригласили вклад

Ваш ответ на эти нападки гораздо более сдержанный, чем мне бы дали такую ​​же провокацию.

Пожалуйста, не откладывайте это отрицательное меньшинство

большое спасибо за код и идеи

Стю

Пожалуйста, уважайте мое желание _не_ продолжать это обсуждение. Я не хочу больше спамить людей, которые смотрят это репо.

Я не блокирую проблему, но если будет опубликован еще один комментарий, я ожидаю, что это будет полезный комментарий со ссылкой на дополнительные PR или что-то в этом роде, а не комментарий «обсуждения». Мы можем вечно перекручивать слова друг друга и «слышать обе стороны», но я не вижу в этом смысла.

Я понимаю ваше беспокойство: вам нужны примеры ES5, и вы не хотите изучать ES6 / 7 в данный момент. Совершенно правильная должность. Моя позиция на данный момент такова, что я _физически неспособен_ работать над этими примерами. Возможно, я смогу это сделать в будущем. Прямо сейчас я ничем не могу вам помочь, кроме как указать на этот замечательный учебный ресурс по ES6 (именно так я и выучил его сам).

Более того, если бы я сосредоточился на этих примерах, я бы вообще не выпустил 1.0. Это было необходимо для выхода 1.0, потому что мне пришлось сразу после этого начать работу над докладом. Вы можете использовать React DnD 0.9.2, последнюю версию, чтобы иметь примеры ES5 . Обратите внимание, что он значительно отличается от 1.0.

Наконец, существует определенный этикет с открытым исходным кодом, и некоторые фразы в приведенных выше комментариях нарушают его. Если вы этого не видите, это ваша проблема, а не моя. Нарушение этого этикета - одна из причин, по которой сопровождающие сгорают и отказываются от своих популярных проектов. Вы можете подумать, что ваша жалоба действительна и вы хорошо понимаете ее, но это совершенно неуместно. Это действительно сложно понять, пока вы не вложите пот и кровь в свой собственный проект и не столкнетесь с аналогичной проблемой.

Подводя итог, я счастлив, если эта тема будет продуктивной. Если это «кто виноват», я заблокирую его.
Благодарю.

Вы совершенно правы, @stooboo и @gaearon. Прошу прощения, если мои вышеупомянутые комментарии нарушили этот этикет, и вы почувствовали себя обвиненными или я проявил к вам неуважение. Я знаю, что поддержка такого проекта требует много усилий и времени, и пока у вас все хорошо, поэтому я благодарен за это. Моим намерением было лишь указать на это беспокойство.
Сказал, что мы должны пропустить это и позволить этой теме развиваться как обычно ..

Мне стыдно и неловко. Мне очень жаль мои комментарии, @gaearon. Это не оправдание, но эта неделя была для меня тяжелой, и в момент разочарования я набросился на нее. Мне искренне жаль, и большое спасибо за эту замечательную библиотеку .

Позвольте мне также предоставить некоторый контекст. Причина, по которой примеры не написаны в ES5, заключается в том, что основная _reason_, которую я написал 1.0, заключалась в том, что у людей возникли проблемы с использованием 0.x из классов ES6: # 109.

Было бы глупо выпускать 1.0, «решая» проблему класса ES6 без классов ES6 в примерах. Поэтому я принял решение в дальнейшем использовать ES6.

Если вы используете React, велики шансы, что у вас уже есть этап сборки. Вам нужно компилировать JSX, верно? (Большинство людей используют его.) Если у вас уже есть шаг сборки, вам буквально ничего не стоит заменить шаг сборки JSX шагом сборки Babel. Фактически, это то, что собирается сделать и Facebook.

Я ожидал, что мне придется на время покинуть эту библиотеку, чтобы «повиснуть», потому что я знал, что мне нужно поработать над своим докладом. Поэтому я решил построить его _смотрев вперед, а не назад_, чтобы он мог какое-то время жить самостоятельно без моего вмешательства.

@jeffreywescott Нет проблем, пожалуйста. Спасибо, что извинились. Я действительно ценю это и знаю, что бывает трудно признать свою неправоту.

: +1:

@gaearon @emergentcypher @awarberg @jeffreywescott @ bismark64

Я следил за учебником в основном по ES5 (потому что я слишком медленно изучаю ES6, но в конечном итоге я использую JSX, очевидно, и деструктурирую ): https://github.com/jehoshua02/react-dnd-experiment

Проследите за примерами ES5 здесь:
https://github.com/vkbansal/react-dnd-es5-examples

Большое спасибо @vkbansal.

Наконец-то есть время, чтобы закончить: http://vkbansal.github.io/react-dnd-es5-examples/

Я не собирался вызывать эмоции у людей, я просто хотел помочь библиотеке стать доступной, и меня больше всего беспокоили примеры, содержащие экспериментальные функции ES7, которые, даже если я переключусь на ES6, все равно не буду использовать. Я действительно думаю, что важно продолжать подталкивать сообщество разработчиков к ES6 сейчас, когда он завершен, и я, безусловно, думаю, что @gearon сделал правильный выбор, рассматривая код ES6 как свой приоритет, и я прошу прощения, если я плохо сформулировал свой исходный комментарий.

Чтобы прокомментировать этапы сборки, в моей среде сборки есть этап сборки JSX, но поскольку моя среда сборки не является Node.js, а обрабатывается на другом языке, это не обязательно так просто, как "подключение" Babel вместо JSX, особенно если вы работаете в команде, в которой не обязательно отвечаете за сборку.

Спасибо @vkbansal и в первую очередь спасибо @gaearon за всю вашу работу.

  • Принимая во внимание, что большинство участников практически не входят в ES6,
  • Принимая во внимание, что перенос с ES7 на ES5 часто приводит к тому, что код неприятно расшифровывать,
  • Хотя все функции ES7 по-прежнему считаются экспериментальными,

Удалите все утилиты ES7

Использование ES7 для синтаксической простоты / краткости работает только в том случае, если все участники осведомлены об исторических вариантах синтаксиса.

@vkbansal, спасибо, что


Пример второго пункта:

Чистый код:

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

Транспилированный вывод (из примера ):

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 как автора примера

Ты пьян?
Сожалею! прокомментировал не в том месте!

@adamellsworth Никто не заставляет вас использовать ES7. Если вы не хотите его использовать, не используйте, но вы не имеете права указывать автору, что делать.

Люди имеют полное право комментировать! Это отличная черта открытого исходного кода. Я не думаю, что высказывание «пожалуйста, удали» является руководящим принципом автора. Если автор не хотел получать комментарии и запросы, то ему не следует публиковать работу на github.

Поскольку теперь у нас есть примеры ES5, я просто закрою это сам :)

Люди имеют полное право комментировать! Это отличная черта открытого исходного кода.

@emergentcypher, ты прав.

@gaearon полностью осознает, что не всем людям комфортно использовать ES7, поэтому он нашел время, чтобы разместить примеры ES6 и ES5 на веб-сайте.

Если автор не хотел получать комментарии и запросы, то ему не следует публиковать работу на github.

Да, автор хочет получать комментарии и отзывы, но они конструктивные .

Попросить автора удалить что-то полностью только потому, что вы этим не пользуетесь, равносильно тому, чтобы подойти к своему боссу и попросить его уволить одного из ваших коллег только потому, что вам не нравится его / ее лицо.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги