开源改变世界

移植/贡献领导/指导 #13

推推 grbl 2年前 (2023-02-03) 150次浏览
关闭
 打开了这个问题 2016 年 10 月 18 日 · 16条评论
关闭

移植/贡献领导/指导#13

 打开了这个问题 2016 年 10 月 18 日 · 16条评论

评论

移植/贡献领导/指导 #13

@lautr3k@tbfleming后台够稳固了吗?我有贡献者渴望开始研究新代码,尤其是现在它是合规的,它基于 React,而且它不再是一团糟(:

@jorgerobles特别想深入

即使是我,我也坐在这里不知道从哪里/如何开始

你能写一个基本的“如何做”让我们都去吗?

移植/贡献领导/指导 #13
成员

我想不出操作方法,但这里有一些注释可能会有所帮助。

  • 应用程序状态在 redux 存储中。
    • 例如文档树、操作、设置、当前选项卡
  • 状态永远不会被修改,只会被替换。这对于撤消/重做支持至关重要。新状态与旧状态共享对象以节省内存。
  • Reducers 是唯一可以创建新状态的东西。动作告诉减速器该做什么。组件呈现状态。他们还安装了创建动作并将它们分派到商店的事件回调。
  • 只有可以序列化到 JSON 或从 JSON 序列化的对象才会进入商店,没有三个对象、DOM 节点、图像对象等。这对于状态保存和加载至关重要。
    • 例如,文档树使用数组表示网格:[x, y, z, x, y, z, …]
    • 例如,文档树将以 base-64 编码的字符串或其他一些 JSON 兼容的形式表示图像数据。
  • React 组件根据需要将对象转换为其他形式。lib/ 中的函数有助于此。
    • 例如,BufferMesh 组件将 [x, y, z, x, y, z, …] 的数组转换为具有 THREE.BufferGeometry 的 THREE.mesh。当状态改变时,它会根据需要重新生成东西。
移植/贡献领导/指导 #13
成员

示例:加载 SVG 文件。

  • Cam组件为文件输入设置回调
  • 回调获取文件,loadDocument使用文件内容创建一个操作,并将其分派到商店
  • documentsreducer 处理 loadDocument 操作。它查看文件类型,发现它是image/svg+xml,并将其传递给loadSvgreducer。
  • reducer 使用 SnapSvg + lib/ 中的loadSvg函数来转换 SVG 并将其添加到新状态。
  • 商店触发 UI 渲染。
移植/贡献领导/指导 #13
作者

太好了,谢谢。这是一个足够好的入门指南!也感谢您提供的示例。
@jorgerobles这会让你继续吗?

移植/贡献领导/指导 #13
合作者
jorgerobles 评论了 2016 年 10 月 19 日  

是的,我目前正在研究 react/redux 的东西。这对我来说有点陌生,但我玩过 XCOM 一段时间 :P。我希望尽快开始工作。

另外,注意是打包在节点上的,所以任何下载该项目的人都应该run npm install/start着火。

移植/贡献领导/指导 #13
作者

好点子。自述文件也需要一个关于如何部署的部分。(@lautr3k webpack 基本说明?)

移植/贡献领导/指导 #13
成员

包列表经常变化;期望npm install每次你做一个git pull,直到事情稳定下来。

移植/贡献领导/指导 #13
成员

还有一点要注意:不要提交 webpack 对docs/和所做的更改dist/。你必须非常小心地关注 git;它一直想要提交这些文件,这会导致查看差异时出现问题。

移植/贡献领导/指导 #13
合作者

著名的!那我应该添加忽略吗?

移植/贡献领导/指导 #13
成员

我希望这会起作用,但是 git 会忽略已经存在的文件的忽略条目。

移植/贡献领导/指导 #13
合作者

另外,请注意合作者这使用了 Babel 预处理器。第一次看到 js 中的原始 html 代码时,我差点晕倒。

移植/贡献领导/指导 #13
作者

(:看看这些是自述文件中需要的东西,否则我们会吓跑
贡献者

在 2016 年 10 月 18 日下午 6:35,“jorgerobles” notifications@github.com写道:

另外,请注意合作者这使用了 Babel 预处理器。
第一次看到 js 中的原始 html 代码时,我差点晕倒。


您收到此消息是因为您是该线程的作者。
直接回复此电子邮件,在 GitHub
#13(评论)上查看,
或将线程静音
https://github.com/notifications/unsubscribe-auth/AHVr25jm9RTusgyNGpd6PtxzAiDonB3Lks5q1PVfgaJpZM4KZn-U

移植/贡献领导/指导 #13
合作者
jorgerobles 评论了 2016 年 10 月 19 日  

好吧,敲了大约 12 个小时左右,我看到了开发的一个主要障碍。
尽管 react/redux 与遗留代码布局有很大的不同,但我意识到开发可能会受到这项技术所暗示的陡峭学习曲线的影响。
我不是这个领域的新手,尽管过去几年我错过了一些前端技巧:)

所以,我认为我们需要一些关于项目工具和技术的链接,以便在开始之前阅读,足够简单而不至于气馁。@lautr3k,也许可以推荐一些?

目前我正在努力研究如何使用 npm/webpack 集成第三方 jquery 插件(是的,也许反应是最后的答案,但如果有好东西可以使用,你不想重新发明轮子)和这个可以肯定的是,大多数人会及时重复,移植遗留代码。

想通了!已经解决了,只是使用import和参考componentDidMount

移植/贡献领导/指导 #13
作者

@jorgerobles只是出于兴趣,你在做什么?

移植/贡献领导/指导 #13
合作者

只需涉足界面即可熟悉。我已经设法将侧边栏调整为拆分窗格。不再有表单输入剪辑;)

移植/贡献领导/指导 #13

@jorgerobles我不能推荐任何东西,也许@tbfleming
我没有使用 react/redux/babel/webpack 的经验,这是我的第一次尝试。请参阅此处的讨论:#2

移植/贡献领导/指导 #13  加了 讨论 标签 2016 年 12 月 8 日
移植/贡献领导/指导 #13

开发人员指南是个好主意,但我认为 wiki 上的页面会更合适。