Если нет возможности полностью перейти на реакт то этот вариант вполне рабочий. Только данные лучше передавать в одном дата атрибуте, так вы сможете запихнуть туда JSON, например, если данные виджета рендерятся на сервере. Ну и добавить проверок наличия компонента и прочего тоже бы не помешало. Плюс надо реализовать функцию которая так же бы уничтожала компоненты. И плюс параметр контекста. Например, если вы открываете попап и там есть компоненты которые надо отрисовать вам не нужно пробегать по всей странице, достаточно искать их только в попапе