Основные моменты, которые надо учесть при создании типовых компонентов.
как делать типовые компоненты:
Универсальность itemID, code + Модели без привязки к базе
Переносимость (минимум завязок)
Кастомизация (коллбеки и настройки, шаблоны)
Управление на данных, а не на коде (SQL + данные)