Jump to content

В чём разница объявлять компонет с макросом COMPONENT или COMPONENT_DEFINE ?


photo

Recommended Posts

Posted

В чём разница объявлять компонет с макросом COMPONENT или COMPONENT_DEFINE ?
В документации есть два разных варианта объявления, так в чём разница ?

image.thumb.png.7c860702523771f40bc47db3a4be1f0b.png


image.thumb.png.46cf9c73fdfaf2f756a02001ab620a49.png

Posted

Здравствуйте! 

макрос COMPONENT нужен для определения всех необходимых для компоненты методов. он обязателен.

макрос PROP_NAME нужен для определения имени проперти, которая будет сгенерирована. он обязателен.

однако, если у вас имя проперти и имя класса совпадает, то можно использовать макрос COMPONENT_DEFINE, который включает в себя COMPONENT и PROP_PARAM. просто для компактности никакой дополнительной логики в нем нет. 

#define COMPONENT_DEFINE(CLASS_NAME, PARENT_NAME)	\
COMPONENT(CLASS_NAME, PARENT_NAME);					\
PROP_NAME(#CLASS_NAME);

т.е. в вашей компоненте должно быть либо  COMPONENT и PROP_NAME либо просто COMPONENT_DEFINE

  • Like 1
×
×
  • Create New...