【问题标题】:Where does React's `scryRenderedDOMComponentsWithClass` method name come from?React 的 `scryRenderedDOMComponentsWithClass` 方法名从何而来?
【发布时间】:2023-04-04 09:15:01
【问题描述】:

在测试 React 组件时,我正在阅读文档并找到 scryRenderedDOMComponentsWithClass。我无法理解这个组件的功能,因为它无法发音,所以我不明白它的命名如何映射到它正在做什么的心理模型。 (有很多相关的名字,比如scryRenderedDOMComponentsWithTag。)

此方法名称的scry 部分指的是什么?害怕?疾走?这个名字想说明什么概念?

【问题讨论】:

    标签: reactjs


    【解决方案1】:

    简答

    在这种情况下,“Scry”只是意味着“找到所有”。见this comment on ReactTestUtils.scryRenderedComponentsWithClass。它是一个单词,不是缩写,它的发音像“cry”,但以“s”开头。

    更长(更书呆子)的答案

    在同一个文件的其他地方,你会看到a reference to DOM.scry

    /**
     * Todo: Support the entire DOM.scry query syntax. For now, these simple
     * utilities will suffice for testing purposes.
     * @lends ReactTestUtils
     */
    

    zpao在a comment on a GitHub issue解释:

    这是对内部 Facebook 模块的引用。它基本上是querySelectorAll,具有处理旧浏览器和特殊情况的后备行为。它非常不起眼,实际上在这里翻译得不是很好(除了scryRenderedDOMComponentsWithQSA 或其他东西,但是嗯)。我们正在努力以其他方式改进测试,所以我认为我们现在没有真正想做的事情。

    jimfb 在another GitHub issue 中更进一步,解释说这个名字是对龙与地下城的引用:

    过去,我们团队中有很多 D&D 粉丝。

    供参考:
    http://www.dandwiki.com/wiki/SRD:Scrying
    http://www.dandwiki.com/wiki/SRD3e:Scry_Skill
    https://en.wikipedia.org/wiki/Scrying

    从历史上看,我们曾使用 scry 来指示查找一组结果的助手。随着框架的成熟,我们应该开始根据函数的实际作用来选择函数名称,而不是那些对典型开发人员来说意义不大的幻想词。

    虽然我同意这个词对大多数人来说意义不大,但值得注意的是"scry" is a real English word

    占卜
    [skrahy]

    动词(不带宾语使用)、scryedscrying

    1. 使用占卜来发现隐藏的知识或未来事件,尤其是通过水晶球。

    有趣的是,根据the data from Google's Ngram Viewer 的说法,这个词似乎在 19 世纪初期就不再正常使用,然后直到 1980 年代才被遗忘,大概是在 D&D 流行之后:

    所以我不能说我反对 jimfb 将其称为“幻想词”,尤其是考虑到当我听到它时我的想象会产生什么样的图像。

    【讨论】:

    • 书呆子答案的道具 :-)
    • 很棒的答案!
    • 书呆子,确实!
    猜你喜欢
    • 2014-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-28
    • 2013-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多