React-dnd: 请添加简单的ES5示例

创建于 2015-06-19  ·  32评论  ·  资料来源: react-dnd/react-dnd

并非所有人都拥有使用新型ES7语法的奢侈,如果有几个工作示例没有引入所有这些新语言功能(尤其是像ES7装饰器这样的实验性功能),这对于新手信息过载将大有帮助。在示例中。 当实验语言功能杂乱无章时,示例的有用性就被削弱了。


从维护者编辑:请在此处跟踪它们:
https://github.com/vkbansal/react-dnd-es5-examples


最有用的评论

迫使人们学习ES6(更糟糕的是,ES7)语法只是为了理解您的示例代码,是_best_的_hostile_。 这看起来像一个很棒的模块。 为什么不至少将示例的_one_的ES5版本导出到未启动的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
等等

不幸的是,我没有时间移植所有示例代码,但这应该可以帮助您入门。

我指的是github存储库中完整的功能示例。

我同意在ES6 / 7成为主流之前,最好使用带有可选ES6 / 7的ES5示例。 如果您不必同时学习新的编程语言+编译为ES5以使代码运行,那么学习react-dnd会更容易。

我认为ES6已经成为主流,并且语言已定稿,Babel在众多项目中使用。

迫使人们学习ES6(更糟糕的是,ES7)语法只是为了理解您的示例代码,是_best_的_hostile_。 这看起来像一个很棒的模块。 为什么不至少将示例的_one_的ES5版本导出到未启动的ES5-example文件夹中。 说您接受PR并没有帮助,因为要求示例的人可能对ES6和ES7并不熟悉!

叹。

我同意这里的家伙, @ gaearon,您不应强迫人们学习ES6 / ES7只是为了了解库的工作原理。这可能导致人们改用另一个库。
这个库很棒,我唯一要反对的就是这个话题。 我不是JS专家(我是Ruby开发人员),所以我很难理解示例,因为您使用的是另一种语法(我不反对新语法,但是在开发库时,您应该采用主流标准),这很荒谬。
如果您希望该库成为React的标准DnD库,则必须对此进行更正。 否则,恐怕人们会使用另一个“更轻松”的解决方案,无论它比您的解决方案好还是坏。

只是因为您正在使用其他语法

仅供参考,这不是另一种语法,它是ES6,即JavaScript。 而且,如果您对ES6语法有疑问,那么您也必须对react有所疑问,因为它实际上是另一种语法。

但是在开发图书馆时,您应该采用主流标准

ES6正在成为主流。 io.js和react本身具有对ES6的支持

你误会了

  1. 查阅Wikipedia

在计算机科学中,计算机语言的语法是一组规则,这些规则定义了符号的组合,这些符号被认为是该语言中结构正确的文档或片段

和:

ECMAScript 2015(第6版)是ECMAScript语言规范标准的当前版本

是的,ES5和ES6都是JS,但是语法不同。
2。

ES6正在成为主流。 io.js和react本身具有对ES6的支持

“成为”和“支持”表示您知道ES6尚未成为主流。它最终会,但是与此同时,您应该在ES5中给出示例。

如果您非常想要ES5示例,为什么不努力自己做出贡献。 @gaearon是一个非常忙碌的人,在业余时间在这个图书馆工作。 因此,与其要求别人做出贡献,不如要求他人做出贡献,其他人也可以从中受益。

盖尔项目的负责人,盖伊,并没有强迫任何人做任何事情。

gaearon已经在这个库上做了大量的工作。 该项目是开源的,免费提供。 指责他充满敌意,或者像他拥有用户一样,对IMHO有点敌意。

他表示他没有时间将示例移植到es5,并且愿意接受捐助。 es5 / 6/7中已经有示例。 老实说,语法没有什么不同。

另外,您可以使用翻译器(如babel)将es6 / 7代码转换为es5,然后使用它,对其进行检查或从中学习。

没有人强迫人们使用react-dnd,也不是该库的目的是成为“唯一的”解决方案。

@hakanderyal正是我的意思!

@hakanderyal我们没有在讨论。.您是对的,我们都感谢@gaearon在该项目中

我们知道没有恶意意图在ES6中编写示例。 就我个人而言,我不是在指责任何人。 尽管如此,我相信这个问题向我们表明了需要ES5示例。

是的,我们可以使用Babel,但是在某些情况下,您不希望仅仅因为您所需要的示例就需要添加更多的库来增加项目的复杂性。 我在Rails项目中使用React和ReactDnD,老实说,我不想为了运行我的代码而处理更多的编译器和东西。

另外,有些人(包括我自己)不是JS专家,所以我认为将事情保持尽可能简单是一件很好的事。

任何现有的贡献者或新贡献者都可以带头解决这个问题,并开始添加一些示例,而不仅仅是@gaearon

@ bismark64 @jeffreywescott @emergentcypher参见#214

:+1:出色的@vkbansal! 谢谢!

谢谢@vkbansal-

嘿伙计。

我花了几个星期和晚上的时间在这个项目及其文档网站上工作,这是我所知道的唯一JS库网站,在每个包含某些代码的文档页面上都显示ES5,ES6和ES7代码示例。 对不起,我还没有完全符合示例的要求!

当我花了数周和数夜的个人无薪时间从事React Europe演讲后得到一些空闲时间时,我可能会考虑您的要求。 同时,请使用其他库或请其他人帮助您处理ES5示例。

我建议您在空闲时间做一些事情:

谢谢。

PS非常感谢@vkbansal。

嗨,盖文,

公开使用代码非常受大多数使用它的人的赞赏。

您正在以“公开方式”推动事情并以公开方式进行..都不是“容易”的事情。

您收到的指责让我感到完全惊讶(我想大多数人都会感到惊讶)
例如“强迫”人们..并且“敌对”
...特别是当您邀请捐款时

您对这些攻击的反应比给予我同样的挑衅要严格得多。

请不要被这个负面的少数派推迟

非常感谢您的代码和想法

斯图

请尊重我的意愿,不要继续讨论。 我不想向观看此仓库的人发送垃圾邮件。

我并没有解决这个问题,但是如果发布其他评论,我希望这是链接到更多PR或类似内容的有用评论,而不是“讨论”评论。 我们可以永远扭曲对方的话,“听双方”,但我看不出重点。

我了解您的担心:您需要ES5示例,并且现在不想学习ES6 / 7。 一个完全有效的职位。 目前,我的立场是我实际上无法处理这些示例。 我将来可能会。 现在,除了指出这个很棒的ES6学习资源(这就是我自己

而且,如果我专注于这些示例,那么我根本不会发布1.0。 退出1.0版是必不可少的,因为那之后我必须立即着手进行我的演讲。 您可以使用React DnD 0.9.2,它是具有ES5示例的最新版本。 请注意,它与1.0明显不同。

最后,有一定的开源礼节,上面评论中的某些短语违反了礼节。 如果看不到,那是您的问题,不是我的。 打破这种礼节是维护者精疲力尽并抛弃他们受欢迎的项目的原因之一。 您可能会认为_您的投诉是有效的,并且您_表示满意_,但这完全无关紧要。 除非您在自己的项目中花了很多力气并遇到类似的问题,否则很难真正理解这一点。

综上所述,如果这是进一步的有益工作,我很高兴。 如果是“谁有过错”,我将其锁定。
谢谢。

您完全正确@stooboo和@gaearon。 如果我的上述评论违反了礼节,并且您感到被指控或我对您不敬,我深表歉意。 我知道维护这样的项目需要大量的精力和时间,到目前为止您的工作做得很好,所以我对此表示感谢。 我的意图只是指出这种担忧。
话说回来,我们应该跳过这一点,让这个线程像往常一样发展。

我感到羞愧和尴尬。 我真的很抱歉,@ gaearon。 这不是借口,但这周对我来说是艰难的一年,在沮丧的时刻,我猛烈抨击。 真的很抱歉,非常感谢您为这个令人惊叹的图书馆

让我也提供一些背景。 没有在ES5中编写示例的原因是,我写1.0的主要原因是人们在使用ES6类中的0.x时遇到了麻烦:#109。

在示例中没有ES6类的情况下发布1.0版“解决” ES6类问题将是很愚蠢的。 因此,我决定进一步使用ES6。

如果您使用的是React,那么您已经拥有构建步骤的可能性很高。 您需要编译JSX吗? (大多数人使用它。)如果您已经有一个构建步骤,那么用Babel构建步骤替换JSX构建步骤几乎不会花费任何成本。 实际上,这也是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 :

我并不是要引起人们的情绪,我只是想帮助图书馆变得可访问,而我最担心的是包含实验性ES7功能的示例,即使我改用ES6,这些示例仍然不会使用。 我确实认为重要的是,既然ES6代码已经完成,就必须继续将开发者社区推向ES6,我当然认为

要评论构建步骤,我的构建环境确实有一个JSX构建步骤,但是由于我的构建环境不是Node.js而是用另一种语言处理,因此它不一定像“插入” Babel而不是JSX一样简单,尤其是您在一个不一定要负责构建的团队中工作。

首先,感谢@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;

编辑:错误地引用@emergentcypher作为ES5例如笔者。

你醉了吗?
抱歉! 在错误的地方发表了评论!

@adamellsworth没有人强迫您使用ES7。 如果您不想使用它,那就不要了,但是您无权告诉作者该怎么做。

人们有权发表评论! 这就是开源的伟大之处。 我不认为说“请删除”会引起作者的注意。 如果作者不想接收评论和请求,那么他不应该在github上发布作品。

由于我们现在有了ES5示例,因此我将自己关闭它:)

人们有权发表评论! 这就是开源的伟大之处。

@emergentcypher你是对的。

@gaearon完全意识到,并不是所有人都喜欢使用ES7,这就是为什么他花时间在网站上放置ES6和ES5示例。

如果作者不想接收评论和请求,那么他不应该在github上发布作品。

是的,作者希望收到评论和反馈,但具有建设性

仅仅因为不使用某东西而要求作者完全删除某物,就等于走上老板并要求他开除您的一位同事,只是因为您不喜欢他/她的脸。

此页面是否有帮助?
0 / 5 - 0 等级