TGViewer
JavaScript for Devs JavaScript for Devs @js_for_devs · 491 subscribers
Post #50 675
🙃 Как Google Переводчик ломает React и другие веб-приложения

Когда Переводчик переводит страницу, он не просто подменяет текст. Он лезет в DOM и без стеснения меняет структуру элементов. Был <p>There are 4 lights!</p> — стало <p><font>Er zijn 4 lampen!</font></p>. Красиво? Возможно. Но React от этого в шоке: его виртуальный DOM теперь говорит одно, а реальный — другое. В результате приложение может “повиснуть” или выдать NotFoundError: Failed to execute 'removeChild'.

React живёт по принципу “ничего не ломаем — всё обновляем точечно”. Но когда Переводчик самовольно выдёргивает узлы, React теряет связь с элементами и впадает в ступор. Отсюда — залипший текст, странные клики (потому что event.target вдруг указывает на <font>), и фатальные креши. Но справедливости ради, достаётся не только React — любой фреймворк, работающий с DOM, рискует оказаться в похожей ситуации.

А можно починить? Теоретически — да: оборачивайте каждый TextNode в span, патчите методы removeChild, ловите ошибки границами и молитесь на ESLint-плагин. На практике — проще запретить перевод вообще. Грустно, но факт: единственный стабильный фикс — не давать пользователю переводить страницу. Звучит немного антигуманно, зато работоспособно.

Подробнее про работу Google переводчика в связке с React читайте на Хабре.

@js_for_devs
  • 🔥 5
  • 👍 3
  • ❤ 1
  • 🤔 1
  • 🤯 1
More from @js_for_devs
  1. Sep 30, 2026Тут больше не будет новостей, статей и постов про JavaScript/TypeScript. JS/TS-разработчик…
  2. Feb 10, 2026Развлекался на выходных со Skills от Remotion. В итоге получился этот промо-ролик. В Remot…
  3. Jan 21, 2026Наконец-то могу видеть свои tailwind-классы без бесконечного скролла..
  4. Jan 20, 2026🔥 Почему свой игровой движок — это проще, чем кажется В новой, большой и практической ста…
  5. Jan 12, 2026⚙️ Инструменты для JavaScript больше не пишут на JavaScript — и вот почему это осознанный…
  6. Dec 29, 2025🎄 Итоги года 4Devs 2025 На прошлой неделе Habr опубликовал итоги года — и наш проект попа…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →