React-dnd: الرجاء إضافة أمثلة بسيطة ES5

تم إنشاؤها على ١٩ يونيو ٢٠١٥  ·  32تعليقات  ·  مصدر: react-dnd/react-dnd

لا نتمتع جميعًا برفاهية استخدام بناء جملة ES7 الجديد ، فسيكون هناك الكثير من المساعدة للحمل الزائد على معلومات الوافد الجديد إذا كان من الممكن وجود بعض الأمثلة العملية التي لم تقدم كل هذه الميزات اللغوية الجديدة (خاصة الميزات التجريبية مثل مصممي ES7) في الأمثلة. يتم تخفيف فائدة الأمثلة عند تشوشها بميزات اللغة التجريبية.


تحرير من المشرف: الرجاء تعقبهم هنا:
https://github.com/vkbansal/react-dnd-es5-examples


التعليق الأكثر فائدة

إن إجبار الناس على تعلم بناء جملة ES6 (والأسوأ من ذلك ، ES7) فقط لفهم كود المثال الخاص بك هو _ المضيف _ في _ الأفضل _. هذا يبدو وكأنه وحدة مذهلة. لماذا لا تقوم على الأقل بتصدير الإصدار ES5 من أحد الأمثلة إلى مجلد مثال ES5 للمبتدئين. إن القول بأنك تقبل العلاقات العامة ليس مفيدًا ، حيث من المحتمل أن الأشخاص الذين يطلبون الأمثلة ليسوا على دراية بـ 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 repo.

أوافق على استخدام أمثلة ES5 مع ES6 / 7 الاختياري حتى يصبح ES6 / 7 سائدًا. سيكون من الأسهل تعلم رد الفعل إذا لم تكن مضطرًا لتعلم لغة برمجة جديدة في نفس الوقت + التحويل إلى ES5 لتشغيل الكود.

أنا أزعم أن ES6 هو السائد بالفعل مع وضع اللمسات الأخيرة على اللغة واستخدام Babel في العديد من المشاريع.

إن إجبار الناس على تعلم بناء جملة ES6 (والأسوأ من ذلك ، ES7) فقط لفهم كود المثال الخاص بك هو _ المضيف _ في _ الأفضل _. هذا يبدو وكأنه وحدة مذهلة. لماذا لا تقوم على الأقل بتصدير الإصدار ES5 من أحد الأمثلة إلى مجلد مثال ES5 للمبتدئين. إن القول بأنك تقبل العلاقات العامة ليس مفيدًا ، حيث من المحتمل أن الأشخاص الذين يطلبون الأمثلة ليسوا على دراية بـ ES6 و ES7 لتبدأ!

لو تنهد.

أتفق مع الرجال هنا ، gaearon لا يجب أن تجبر الناس على تعلم ES6 / ES7 فقط لفهم كيفية عمل المكتبة .. هذا قد يدفع الناس إلى استخدام مكتبة أخرى بدلاً من ذلك.
هذه المكتبة رائعة ، الشيء الوحيد الذي يجب أن أجادله ضدها هو هذا الموضوع. أنا لست خبيرًا في JS (أنا مطور Ruby) لذلك يصعب علي فهم الأمثلة ، فقط لأنك تستخدم صيغة أخرى (أنا لست ضد بناء الجملة الجديد ، ولكن عند تطوير مكتبة ، يجب عليك اعتماد المعايير السائدة) ، وهو أمر سخيف ..
إذا كنت تريد أن تكون هذه المكتبة هي مكتبة DnD القياسية لـ React ، فيجب عليك تصحيح هذا. وإلا فإنني أخشى أن يستخدم الناس حلًا آخر "أسهل" بغض النظر عما إذا كان أفضل أو أسوأ من حلك ..

فقط لأنك تستخدم صيغة أخرى

لمعلوماتك ، هذه ليست صيغة أخرى ، إنها ES6 ، وهي JavaScript. وإذا كانت لديك مشكلة في بناء جملة ES6 ، فيجب أن يكون لديك أيضًا مشكلة في التفاعل ، لأنها في الواقع صيغة أخرى.

ولكن عند تطوير مكتبة ، يجب أن تعتمد المعايير السائدة

ES6 أصبح التيار الرئيسي. io.js والرد نفسه يدعم ES6

انت مخطئ.

  1. تحقق من ويكيبيديا :

في علوم الكمبيوتر ، يعتبر بناء جملة لغة الكمبيوتر هو مجموعة القواعد التي تحدد مجموعات الرموز التي تعتبر وثيقة أو جزء منظم بشكل صحيح في تلك اللغة

و:

ECMAScript 2015 (الإصدار السادس) هو الإصدار الحالي من معيار مواصفات اللغة ECMAScript

نعم كل من ES5 و ES6 هما JS ، لكن بناء الجملة مختلف.
2.

ES6 أصبح التيار الرئيسي. io.js والرد نفسه يدعم ES6

تدل "أن تصبح" و "دعم" على أنك تعرف أن ES6 ليس سائدًا بعد .. سوف يحدث ذلك في النهاية ، ولكن في هذه الأثناء يجب عليك إعطاء أمثلة في ES5.

إذا كنت تريد أمثلة ES5 بشدة ، فلماذا لا تبذل جهدًا للمساهمة بها بنفسك. gaearon شخص مشغول للغاية ويعمل في هذه المكتبة في أوقات فراغه. فبدلاً من المطالبة حاول المساهمة ، حتى يتمكن الآخرون أيضًا من الاستفادة منها.

الرجال ، مالك المشروع ، gaearon ، لا يجبر أي شخص على أي شيء.

لقد قام gaearon بالفعل بعمل هائل على هذا lib. المشروع مفتوح المصدر و مجاني اتهامه بالعداء ، أو كأنه يمتلك المستخدمين أي شيء هو نوع من العدائية IMHO.

وذكر أنه ليس لديه الوقت لنقل الأمثلة إلى es5 ، وأنه منفتح على المساهمات. توجد أمثلة بالفعل في es5 / 6/7. ولكي أكون صادقًا ، فإن بناء الجملة ليس مختلفًا.

أيضًا ، يمكنك استخدام مترجم ، مثل بابل ، لتحويل كود es6 / 7 إلى es5 ، واستخدامه أو فحصه أو التعلم منه.

لا أحد يجبر الناس على استخدام رد الفعل ، وليس الغرض من هذه المكتبة أن تكون الحل "الوحيد".

hakanderyal بالضبط وجهة نظري!

hakanderyal نحن لا نناقش ذلك .. أنت على حق ، نشكر جميعًا gaearon على العمل الهائل في هذا المشروع.

نعلم أنه لم تكن هناك نية خبيثة لكتابة الأمثلة في ES6. أنا شخصياً لا أتهم أي شخص بهذا. ومع ذلك ، أعتقد أن هذا الموضوع يوضح لنا أن هناك حاجة إلى أمثلة ES5.

نعم ، يمكننا استخدام Babel ، لكن في بعض الحالات لا ترغب في إضافة المزيد من التعقيد إلى مشروعك بإضافة المزيد من libs لمجرد أن الأمثلة التي تطلبها. أنا أستخدم React و ReactDnD في مشروع Rails وبصراحة لا أريد التعامل مع المزيد من المحولات والأشياء فقط لتشغيل الكود الخاص بي ..

أيضًا ، بعض الأشخاص (بمن فيهم أنا) ليسوا خبراء في JS ، لذلك أعتقد أنه سيكون من الجيد إبقاء الأمور بسيطة قدر الإمكان.

يمكن لأي مساهم حالي أو جديد أخذ زمام المبادرة في هذه المشكلة والبدء في إضافة بعض الأمثلة ، وليس فقطgaearon

@ bismark64jeffreywescottemergentcypher انظر رقم 214

: +1: رائع @ vkbansal! شكرا لك!

شكرا ، vkbansal - أنت صخرة!

مرحبا يا اصدقاء.

لقد أمضيت أسابيع وليالي من وقتي الشخصي في العمل على هذا المشروع وموقع الويب الخاص به للمستندات وهو موقع مكتبة JS الوحيد الذي أعرفه والذي يعرض أمثلة رموز ES5 و ES6 و ES7 في كل صفحة مستند تحتوي على بعض التعليمات البرمجية. أنا آسف لأنني لم أرتقي إلى مستوى توقعاتك مع الأمثلة نفسها!

عندما أحصل على بعض وقت الفراغ بعد قضاء أسابيع وليالٍ من وقتي الشخصي غير المدفوع الأجر في العمل على حديثي في ​​React Europe ، فقد أفكر في طلبك. في غضون ذلك ، يرجى استخدام مكتبة أخرى أو اطلب من شخص ما مساعدتك في الحصول على أمثلة ES5.

إليك بعض الأشياء التي أقترح عليك القيام بها عندما تحصل على وقت فراغ:

شكر.

ملاحظة شكر جزيل لـ vkbansal.

مرحبًا Gaearon ،

يحظى إصدار الكود الخاص بك للاستخدام العام بتقدير كبير من قِبل غالبية الأشخاص الذين يستخدمونه.

أنت تدفع بالأشياء "إلى الأمام" وتقوم بها بشكل علني .. ولا يعتبر أي منهما "سهلًا".

أنا مندهش تمامًا (وأعتقد أن معظم الناس سيكونون كذلك) من الاتهامات التي تلقيتها
على سبيل المثال "إجبار" الناس .. و "عدائية"
... خاصة عندما تقوم بدعوة المساهمات

ردك على هذه الهجمات متحفظ بدرجة أكبر مما لو كان لي نفس الاستفزاز.

من فضلك لا تؤجل هذه الأقلية السلبية

شكرا جزيلا على الكود والأفكار

ستو

يرجى احترام رغبتي في _ لا_ مواصلة هذه المناقشة. لا أريد إرسال بريد عشوائي إلى الأشخاص الذين يشاهدون هذا الريبو أكثر من ذلك.

أنا لا أقفل المشكلة ، ولكن إذا تم نشر تعليق آخر ، فأنا أتوقع أن يكون هذا تعليقًا مفيدًا يرتبط بمزيد من العلاقات العامة أو شيء من هذا القبيل ، وليس تعليق "مناقشة". يمكننا تحريف كلمات بعضنا البعض إلى الأبد و "سماع كلا الجانبين" لكنني لا أرى الهدف.

أفهم قلقك: أنت بحاجة إلى أمثلة ES5 ولا تريد أن تتعلم ES6 / 7 في الوقت الحالي. موقف صالح تمامًا. موقفي في الوقت الحالي هو أنني - غير قادر جسديًا - على العمل على هذه الأمثلة. قد أكون قادرة على ذلك في المستقبل. في الوقت الحالي ، لا يوجد شيء يمكنني القيام به لمساعدتك باستثناء الإشارة إلى مصدر التعلم ES6 الرائع (وهو كيف تعلمته بنفسي).

علاوة على ذلك ، إذا كنت سأركز على هذه الأمثلة ، فلن أشحن 1.0 على الإطلاق. لقد كان قطعًا ضروريًا للحصول على 1.0 لأنه كان علي أن أبدأ العمل على حديثي بعد ذلك مباشرة. يمكنك استخدام React DnD 0.9.2 وهو أحدث إصدار يحتوي على أمثلة ES5 . لاحظ أنه يختلف اختلافًا كبيرًا عن 1.0.

أخيرًا ، هناك آداب معينة مفتوحة المصدر ، وبعض العبارات الواردة في التعليقات أعلاه تنتهكها. إذا كنت لا ترى ذلك ، فهذه مشكلتك وليست مشكلتي. يعد كسر هذا السلوك أحد الأسباب التي تجعل المشرفين يحترقون ويهجرون مشاريعهم الشعبية. قد تعتقد أن _ شكواك_ كانت صحيحة وأنت _تقصد جيدًا _ لكنها غير ذات صلة على الإطلاق. من الصعب حقًا أن تفهم هذا حقًا حتى تضع العرق والدم في مشروعك الخاص وتواجه مشكلة مماثلة.

باختصار ، إذا كان هذا موضوعًا مثمرًا ، فأنا سعيد. إذا كان "من هو المخطئ" فسوف أقفله.
شكر.

أنت محق تمامًا stooboo وgaearon. أعتذر إذا انتهكت تعليقاتي أعلاه هذه الآداب ، وشعرت أنك متهم أو كنت غير محترم لك. أعلم أن الحفاظ على مثل هذا المشروع يتطلب الكثير من الجهد والوقت ، وأنت تقوم بعمل رائع حتى الآن ، لذلك أنا ممتن لذلك. كانت نيتي فقط الإشارة إلى هذا القلق.
قال ذلك ، يجب أن نمرر هذا ونترك هذا الخيط يتطور كالمعتاد ..

أشعر بالخجل والإحراج. أنا آسف حقًا لتعليقاتي ،gaearon. هذا ليس عذراً ، لكن هذا الأسبوع كان صعباً بالنسبة لي ، وفي لحظة من الإحباط ، انتقدت بشدة. آسف حقًا ، شكرًا جزيلاً لك على هذه المكتبة الرائعة .

اسمحوا لي أيضا أن أقدم بعض السياق. السبب وراء عدم كتابة الأمثلة في ES5 هو أن السبب _ السبب الرئيسي الذي كتبته 1.0 هو الأشخاص الذين يواجهون مشاكل في استخدام 0.x من فئات ES6: # 109.

سيكون من السخف إصدار 1.0 "حل" مشكلة فئة ES6 بدون فئات ES6 في الأمثلة. لذلك اتخذت قرارًا باستخدام ES6 بشكل أكبر.

إذا كنت تستخدم React ، فإن الاحتمالات عالية بأن لديك بالفعل خطوة بناء. تحتاج إلى ترجمة JSX أليس كذلك؟ (يستخدمه معظم الأشخاص.) إذا كان لديك بالفعل خطوة بناء ، فلن يكلفك أي شيء فعليًا لاستبدال خطوة بناء JSX بخطوة Babel build. في الواقع ، هذا ما سيفعله Facebook أيضًا.

كنت أتوقع أنني سأضطر إلى مغادرة هذه المكتبة "للتعليق" لفترة من الوقت لأنني كنت أعرف أنني بحاجة إلى العمل على حديثي. لذلك ، اخترت أن أبنيها - تتطلع إلى المستقبل ، بدلاً من الخلف - حتى تتمكن من العيش بعض الوقت بمفردها دون تدخل مني.

jeffreywescott لا مشكلة ، وأنت على الرحب والسعة. شكرا لقول آسف. أنا أقدر حقًا وأعلم أنه قد يكون من الصعب الاعتراف بالخطأ.

: +1:

gaearonemergentcypherawarbergjeffreywescott @ bismark64

لقد تابعت مع البرنامج التعليمي في الغالب ES5 (لأنني بطيء جدًا في تعلم ES6 ، لكنني في النهاية سأستخدم JSX ، ومن الواضح أنه مدمر ): https://github.com/jehoshua02/react-dnd-experiment

يرجى تتبع أمثلة ES5 هنا:
https://github.com/vkbansal/react-dnd-es5-examples

شكرا جزيلا ل vkbansal.

أخيرًا حصلت على بعض الوقت لإنهائه :

لم يكن في نيتي إثارة مشاعر الناس ، أريد فقط مساعدة المكتبة في الوصول إليها وكنت مهتمًا في الغالب بالأمثلة التي تحتوي على ميزات ES7 التجريبية التي ، حتى لو قمت بالتبديل إلى ES6 ، ما زلت لا أستخدمها. أعتقد أنه من المهم الاستمرار في دفع مجتمع dev نحو 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));

إخراج Transpiled (من المثال ):

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;

تحرير: تمت الإشارة إليه عن طريق الخطأ إلى emergentcypher باعتباره مثال المؤلف es5.

هل انت سكران؟
آسف! علق في مكان خاطئ!

adamellsworth لا أحد يجبرك على استخدام ES7. إذا كنت لا ترغب في استخدامه ، فلا تفعل ، ولكن ليس لديك الحق في إخبار المؤلف بما يجب فعله.

للناس كل الحق في الإدلاء بتعليقات! هذا هو الشيء العظيم في المصادر المفتوحة. لا أعتقد أن قول "الرجاء الإزالة" يعمل على زعزعة المؤلف. إذا كان المؤلف لا يريد تلقي التعليقات والطلبات ، فلا يجب أن ينشر العمل على جيثب.

نظرًا لأن لدينا الآن أمثلة ES5 ، سأغلق هذا بنفسي :)

للناس كل الحق في الإدلاء بتعليقات! هذا هو الشيء العظيم في المصادر المفتوحة.

emergentcypher أنت على حق.

gaearon يدرك تمامًا أنه ليس كل الأشخاص مرتاحون لاستخدام ES7 ، ولهذا السبب استغرق وقتًا في وضع أمثلة ES6 و ES5 على موقع الويب.

إذا كان المؤلف لا يريد تلقي التعليقات والطلبات ، فلا يجب أن ينشر العمل على جيثب.

نعم ، يريد المؤلف تلقي التعليقات والملاحظات ولكنها بناءة .

مطالبة المؤلف بإزالة شيء ما تمامًا لمجرد أنك لا تستخدمه ، يعادل الذهاب إلى رئيسك في العمل ومطالبتك بإقالة أحد زملائك لمجرد أنك لا تحب وجهه.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات