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.
  • Потребители нашего компонента могут оставаться в Реактировании.