Clojurescript 什么是Om组件?
考虑以下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为
(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,除非你需要它立即用于生产。它还没有发布为“生产就绪”,但预计将在未来一两个月内发布(当然,软件很难估计)。