На самом деле, версии стандарта C ++ до того, как C ++ 11 определили ключевое слово «export», [] , можно просто объявить шаблоны в файле заголовка и реализовать их в другом месте.
К сожалению, ни один из популярных компиляторов не реализовал это ключевое слово. Единственный, о котором я знаю, - это интерфейс, написанный Edison Design Group, который используется компилятором Comeau C ++. Все остальные настаивали на том, что вы пишете шаблоны в заголовочных файлах, нуждающихся в определении кода для надлежащего создания экземпляра (как уже указывали другие).
В результате стандартная комиссия ISO C ++ решила удалить export
особенность шаблонов, начинающихся с C ++ 11.
Лучшая причина использования Рычагов: уберите код и лучший опыт разработки. Поскольку иногда сложные компоненты делают код трудно для чтения. Таким образом, мы можем использовать рычаги вместо этого. Но это не означает, что реагируют, заменит классы. Реагируйте продолжит поддерживать обоих. Для большего количества информации можно обратиться к документации https://reactjs.org/docs/hooks-intro.html
Рычаги значительно уменьшают объем кода, который необходимо записать и увеличить его удобочитаемость.
Это стоит отметить, хотя это там скрыто процессы, продолжающиеся позади (Точно так же, как компонент действительно монтировался и т.д.), что средний, если Вы не понимаете то, что продолжается, может быть трудно диагностировать. Лучше экспериментировать с ними и прочитывать документы полностью прежде, чем реализовать на живом проекте.
Также существует все еще ограниченная поддержка/документация тестирования рычагов по сравнению с классами. https://dev.to/theactualgivens/testing-react-hook-state-changes-2oga