Когда меня спросили о механизме работы функции крюка на планете, я посчитал, что очень нужно использовать специальную статью, чтобы объяснить это.Хорошо, давайте бегло посмотрим.
1. Что такое крючок
В Vue есть функции-ловушки, и многие команды Git также имеют соответствующие ловушки. Механизм подключаемых модулей Webpack также основан на «хуках». Я не знаю, где вы впервые услышали слово «ловушка». связь между этим я понимаю так:
Хуки — это инструменты фреймворка с заданным жизненным циклом, которые зарезервированы пользователями для выполнения определенных операций на разных этапах жизненного цикла.Аспектно-ориентированное программирование
Здесь два ключевых слова,установленный жизненный цикла такжелицом к лицу
иметь толькоустановленный жизненный циклИнструменту фреймворка нужно только зарезервировать определенные пользователем операционные отверстия.Давайте простой каштан (это может быть непросто для студентов, которые этого не знают): способ работы gulp заключается в определении последовательного потока конвейера задач, который вы можете сплайсинга свободно.Разные задачи, это называется нет установленного жизненного цикла, хуки на данный момент бессмысленны, но вебпак отличается, он определил весь рабочий процесс анализа, компиляции, упаковки и вывода.Если вы хотите скомпилировать После окончания , делайте что-нибудь перед упаковкой вывода, а webpack не дает вам никаких хуков для вмешательства, то все ваши усилия будут напрасны.В этом смысл хуков.Помните из какой статьи следующие две картинки?
Зачем даже упоминатьлицом к лицу, впервые я услышал это слово, когда писал java, это была одна из основных идей спринга (надо сказать, что фронтенд развивался от каменного века до сегодняшнего индустриального века, и многое позаимствовал у идеи back-end программирования, так называемые по аналогии, вот что говорит правда). Используйте свое воображение, так называемый крючок, это на определенном этапе рамочного инструмента, разрезая нож, вставляя одну или несколько конкретных операций и думая о прошлом, если вы не можете понять это~~
Во-вторых, механизм работы крючка
Как упоминалось ранее, хук — это вставка ножа на определенном этапе инструмента фреймворка для выполнения одной или нескольких определенных операций, разве это не вызов одной или нескольких пользовательских функций?
Напрямую вызвать согласованную функцию на определенном этапе жизненного цикла инструмента фреймворка, такого как Vue.При отрисовке компонента вызывается смонтированный метод компонента, а при обновлении компонента — обновленный метод компонент выполняется.
По горизонтали реализовать набор механизмов событий, на определенном этапе жизненного цикла запускать конкретное событие, выполнять все функции, прописанные под событием, а когда дело доходит до событий, у кого-то скальп немеет, так что, я тактичен Нарисуйте картина:
Ядро механизма публикации и подписки на события лежит впул событий, сторона, которая подписывается на событие, помещает конкретную операцию в значение ключа пула событий, а сторона, публикующая событие, находит все функции, подписанные на значение ключа пула событий, и выполняет их последовательно (могут также быть зависимостями между функциями), поддерживать
Сложные вещи в мире нужно делать легко
Если вышеуказанный пул событий представлен хэш-картой в памяти, вы сможете легко получить его в сумке (аналогично циклу событий Js, фактически он использует только независимый поток для обслуживания пула событий)
На самом деле, механизм событий многих инструментов фреймворка действительно так же прост, как и hashMap для поддержки, например, Tapable, используемого в Webpack.
3. Введение в Tapable
Я переводил документы Tabpable, когда раньше изучал веб-пакет. Пока единственная работа по переводу (неловко~),перейти отсюда
4. Последствия
Передняя часть FIMcЭто сообщество знаний, которое углубляет знания, добро пожаловать на добавление микрокрюка: facemagic2014