什么是Om组件?

时间:2016-02-17 14:59:24

标签: clojurescript om

请考虑以下代码片段:

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

问题:是" Om组件"整个片段,还是只是函数的(reify ...)表达式的返回值?

1 个答案:

答案 0 :(得分:2)

通常,它们都被称为"组件"。 reify的结果是" object-y"事情,所以在某种意义上它应该被称为组件,但功能是被命名的东西,所以它通常值得讨论。

重要的是, 这些都不是React组件。 Om为您创建和管理React组件。它在owner可用。

Om Next删除了这个间接级别,这有点使术语含糊不清:

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

(def hello (om/factory HelloWorld))

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