【发布时间】:2016-02-26 09:14:26
【问题描述】:
我正在开发一个 Ruby/React 项目。我们使用 React 组件和 CoffeeScript,最终的 JS 由 Sprockets 组装:
#= require org/components/whatever
{ Whatever } = Org.Components
没有太多嵌套也没关系,然后你会写这样的东西:
#= require org/components/whatever
#= require org/components/something/else/whatever
{ Whatever1 } = Org.Components
{ Whatever2 } = Org.Components.Something.Else
今天我试图找到Org.Components.Image.Upload 的使用位置。但有时它被导入为{ Upload } 或用作Image.Upload 并没有让事情变得更容易。
现在我在想也许不要比Org.Components 更进一步进口。因此,如果您需要 Image.Upload — 获取 { Image } = Org.Components,然后使用 Image.Upload。如果它变得太长 - 分配给一个变量。
#= require org/components/image
{Image} = Org.Components
Upload = Image.Super.Complex.Upload
# Or use it like this for explicitness
render: ->
Image.Super.Complex.Upload
这里的最佳做法是什么?我希望代码是可搜索的。
【问题讨论】:
-
对对象的本地引用可以帮助减少查找时间,这似乎是您正在做的事情,但是如果它是有组织的,依赖声明模式会非常有用并且方便。
-
我通常在处理深度嵌套的对象时使用该方法。
-
我认为没有最佳实践。但是你当然不应该混合它们,使用 either 解构 或 变量赋值。
-
另一种选择:
{Components: {Image}} = Org; -
问题是 - 这是不可搜索的。我希望能够知道组件在哪里使用,以便于重构。
标签: javascript coffeescript reactjs sprockets