Сразу уточню - полного доступа к фронту нет, к витрине магазина подключается отдельный скрипт - который уже делает апи запросы и тд (это script tag у shopify).
Мне нужно отрисовать виджет, варианта это сделать два:
1) При получении апи запроса, на основе настроек рендерится html и css, которые возвращаются и вставляются в dom-дерево.
После вставки уже на нативном js найти нужные элементы и повесить на них функционал, клики и тд.
2) C сервера возвращать только параметры, на фронте же рендерить виджет через реакт.
в 1м случае мы получаем более тяжёлые запросы, но меньший размер бандла js, так как там нет react и в целом по минимуму зависимостей.
во 2м, максимально лёгкие запросы, но более тяжёлые виджеты, так как каждый виджет будет тащить с собой реакт (всего виджетов 6-7, каждый это отдельный скрипт).
какой вариант будет правильней, и что в итоге будет предпочтительней пользователю? на ваш взгляд конечно же.
Странное какое-то описание. Если на сайте нет Реакта, почему именно он?
Если он будет использоваться в нескольких виджетах, зачем его тащить с каждым, почему не включить один раз в шаблон сайта?
Собственно, и сам вопрос с 1 вариантом звучит как "а не сделать ли через задницу, что посоветуете?".
Adamos, я по-моему вполне понятно написал, что у меня нет доступа к фронту, совсем, и я не могу ничего добавлять в шаблон. Единственно что я могу - сказать шопифаю (Shopify), чтобы он загружал мои, внешние для него, скрипты.
И опять таки, как я и написал, каждый виджет - отдельный скрипт. Потому клиент может включить все виджеты на одной странице, может включить по одному на каждую страницу и куча других параметров, я не могу этого знать
Enma, все равно не понимаю, зачем вам для выноса на фронт логики формирования верстки, которую вы готовы насобачить в РНР, понадобился аж целый тяжелый Реакт.
Можно применить оба решения, и рендерить и возвращать сразу верстку, кстати, если ты посмотришь какой либо маркетплейс, то там они возвращают готовую верстку, просто вставляют ее в нужное место. И так же сделать через JS, отрисовывать нужный тебе виджет. У обоих решений есть и плюсы и минусы, нужно уметь в них разбираться и понимать какой из способов лучше подойдет именно тебе здесь и сейчас.