2016-02-17 5 views
1

Рассмотрим следующий фрагмент кода: омЧто такое компонент Om?

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

Вопрос: ли «Ом компонент» весь этот фрагмент кода, или это просто возврат значения функции выражения (reify ...)?

+0

Для меня это функция, которая возвращает компонент om (вы можете увидеть его как конструктор/фабрика). Не уверен, почему это должно иметь значение. – nha

ответ

2

Как правило, они называются «компонентами». Результатом reify является «объект-y», поэтому в некотором смысле его следует называть компонентом, но функция - это то, что названо, поэтому, как правило, об этом стоит говорить.

Важно отметить, что ни один из не является компонентом React. Om создает и управляет компонентом React для вас. Он доступен здесь как owner.

Ом Далее удаляет этот уровень косвенности, который помогает с терминологией неоднозначности немного:

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

(def hello (om/factory HelloWorld)) 

В этом Ом Следующий код, HelloWorld является актуальной Реагировать компонент класса и его экземпляры (генерируются с помощью функции hello) являются действительными компонентами компонентов React.

+1

Om Следующая версия кажется значительно превосходящей/менее запутанной. И я думал, что Om Next и Om - одно и то же. Я, наверное, должен полностью опустить Ом, и просто научиться Om Next. Согласитесь? – George

+2

Да, я бы сказал, если вы начинаете с нуля сегодня, вы можете также изучить Om Next, если вам это не нужно немедленно для использования в производстве. Он по-прежнему не выпущен как «готовый к производству», но ожидается, что он будет в течение следующего месяца или двух (хотя, конечно, программное обеспечение сложно оценить). – Peeja

Смежные вопросы