Внимание, личные разглагольствования впереди.

Недавно я только что добавил Google reCAPTCHA в приложение для реагирования. Это была небольшая работа, так как reCAPTCHA не предназначена для хорошей интеграции с React, мне пришлось вырваться из обычных вещей DOM JS, которые React скрывает от вас.

Итак, просмотрев документы, я понял, что мне нужно загрузить скрипт reCAPTCHA, а затем отобразить капчу после того, как скрипт загрузится, это не кажется сложным, и это не так. Немного подумав, я собрал простой компонент.

Теперь это не так красиво, но это делает работу. Я могу назвать это так

Из интереса я посмотрел на npm, чтобы узнать, есть ли пакет для этого и решили ли они его лучше. Первый хит (реакция-рекапча) с 35 000 загрузок в месяц требует, чтобы вы поместили скрипт Google в голову. вашего html-документа, не очень удобной для инкапсуляции компонента React. В коде также используется setInterval для проверки загрузки скрипта с капчей. Все это очень хакерски, почему бы просто не загрузить скрипт и не прослушать событие загрузки? Простой.

Второй пакет npm, который я нашел, оказался не намного лучше: react-google-recaptcha с 70 000 загрузок в месяц имеет целую кучу, казалось бы, переработанного кода. Что еще хуже, это зависит от другого пакета, единственной задачей которого является загрузка скрипта, ему удается сделать это с помощью колоссальных 200 строк кода. Я имею в виду, что такого сложного в том, чтобы сделать?

var script = document.createElement('script')
script.src = "my-awesome-script.js"
document.body.appendChild(script)

Что я хочу сказать? Думаю, я просто удивлен, как много людей зависят от этих, казалось бы, хрупких реализаций, почему бы не проверить свои зависимости или не создать что-то маленькое самостоятельно.

/рантовер