Выскажу сугубо личное мнение, как дилетанта в реактивных библиотеках, но с кое-каким опытом в JS-ванильных картографических — все эти реактивные обёртки над mapbox-gl-js (да и над leaflet) по своей природе ущербны, ибо пытаются скрестить ежа с ужом. React, Vue и прочие хороши при работе с множеством простых компонентов, их иерархией и взаимодействием внутри иерархии, а архитектура mapbox-gl-js самодостаточна в плане взаимодействия между собственными компонентами и обеспечения этой самой реактивности, всё очень легко, приятно и немногословно пишется на чистом JS. Пытаться работать с компонентами карты в mapbox-gl-js через Vue или React (в моём случае) — это как собирать парусник в бутылке, то есть возможно (есть же примеры, кому это удалось), но крайне неудобно. А как только задача вырастает из манипулирования одним маркером в обработку взаимодействия нескольких слоёв с множествами разнокалиберных данных, то вся внешняя реактивность превращается в тормозящие гири и тонны кода. IMHO. Самому было бы интересно посмотреть на проекты, где эффективно реализованы карты с Vue или React, но меня гложут смутные сомнения, что такие есть... 😉
Про парусник в бутылке - очень точное сравнение ))
Вообще это проблема в области - как превратить императивное апи мапбокса в декларативное апи реакта.
Но, насколько я знаю, полностью эту задачу никто ещё не решил - слишком много работы. В основном переводят до какой-то степени - например слои и сорсы декларативные уже есть, а вот дальше предлагается взять ссылку на инстанс карты и юзать императивное апи (что в реакте неудобно делать в больших количествах). Такая каша в коде выглядит не приметно, и кажется что проблема в реакте (да него ведь проблемы такой небывало), хотя, на мой взгляд, проблема в незавершённости задачи (отсутствии плотностью декларативной обертки). Был бы реакт так популярен если бы на то и дело приходилось переходить в императивный режим jQuery для работы с домом? Ответ заранее известен - код получается так себе.