Clojurescript 什么是Om组件?

Clojurescript 什么是Om组件?,clojurescript,om,Clojurescript,Om,考虑以下om代码片段: (fn [data owner] (reify om/IRender (render [_] (dom/p nil (:text data))))) 问题:是整个代码段的“Om组件”,还是仅仅是(具体化…表达式的函数返回值?通常,它们都被称为“组件”。reify的结果是“object-y”对象,因此在某种意义上它应该被称为组件,但函数是被命名的对象,因此它通常是值得讨论的 但重要的是,这两种成分都不是React成分。Om为

考虑以下om代码片段:

(fn [data owner]
    (reify
      om/IRender
      (render [_]
        (dom/p nil (:text data)))))

问题:是整个代码段的“Om组件”,还是仅仅是
(具体化…
表达式的函数返回值?

通常,它们都被称为“组件”。
reify
的结果是“object-y”对象,因此在某种意义上它应该被称为组件,但函数是被命名的对象,因此它通常是值得讨论的

但重要的是,这两种成分都不是React成分。Om为您创建和管理React组件。可在此处以
所有者
的身份获取

Om下一步将删除此级别的间接寻址,这有助于消除术语的歧义:

(defui HelloWorld
  Object
  (render [this]
    (dom/div nil "Hello, world!")))

(def hello (om/factory HelloWorld))

在这个Om下一个代码中,
HelloWorld
是一个实际的React组件类,其实例(使用函数
hello
生成)是实际的React组件对象。

对于我来说,这是一个返回Om组件的函数(您可以将其视为构造函数/工厂)。不过,我不确定这有什么关系。Om的下一个版本似乎要高得多/不那么令人困惑。我认为Om Next和Om是同一件事。我可能应该彻底抛弃Om,然后再学习Om。你会同意吗?是的,我想说,如果你今天从零开始,你不妨下一步学习Om,除非你需要它立即用于生产。它还没有发布为“生产就绪”,但预计将在未来一两个月内发布(当然,软件很难估计)。