React: Интеграция внешних библиотек, в которых много объектов DOM в js
Некоторые из нереактивных библиотек, которые я использую, выполняют некоторое создание DOM с помощью javascript. В идеале я бы хотел, чтобы это произошло в цикле реакции рендеринга, но реакция не реализует некоторые функции DOM.
т. одна библиотека хочет создать фрагмент для отображения заголовка (используя jQuery), который, в свою очередь, заканчивается вызовом document.createDocumentFragment.
Простая работа - это сделать библиотеку рендеринга на монтировании или обновлении компонентов. Но я пытаюсь сделать с помощью виртуальной DOM. Есть ли лучший подход к воссозданию или переносу библиотеки?
Ответы
Ответ 1
Вам нужен "Портал".
Взгляните на https://github.com/ryanflorence/react-training/blob/gh-pages/lessons/05-wrapping-dom-libs.md
Это очень хорошо объясняет решение, например:
Методология:
- DOM libs обычно управляют DOM
- React пытается повторно отобразить и найти другую DOM, чем в прошлый раз, и freaks out
- Мы скрываем манипуляции DOM с React, разбивая дерево рендеринга, а затем снова соединяемся с DOM, которым манипулирует lib.
- Потребители нашего компонента могут оставаться в Реактировании.