Автор оригинала: FreeCodeCamp Community Member.
Ryan Yurkanin.
TLDR, Реактивное волокно представляет собой внутреннее изменение двигателя, которое позволяет взаимодействовать на пределы стека вызовов. Это создание позволяет реагировать на паузу/начать рендеринг работать по желанию. В конце концов, пользователи RACT смогут наметить на «приоритет» работы.
В настоящее время мы не можем напрямую взаимодействовать с ним, так почему мы должны заботиться об этом? Потому что это действительно чертовски круто!
Реагируйте до того, как волокно было похоже на работу в быстрое развивающуюся компанию без Git.
Представьте себе быть в середине огромной особенности, и ваш босс нужен исправление, пронто. Вы не можете перестать работать, хотя все ваши изменения в одном файле, вы привержены заканчиваю эту работу.
Если бы мы использовали GIT, мы сможем совершить нашу работу в филиал и перейти на быструю ветку исправления.
С волокном, реагирование может приостановить и возобновить работу по желанию, чтобы работать над тем, что важно как можно скорее! ?
Реагирование внутренних органов в двух словах?
Вы создаете дерево компонентов. Реагируйте это дерево, прогуляются через него и создают виртуальную модель конечного результата. Возможно, вы редаете до DOM, возможно, вы ориентируетесь на родных. На данный момент это не имеет значения, чтобы реагировать.
Теперь, когда ваши обновления приложения Rect будут выполнять этот процесс создания виртуального результата снова и снова. Каждый раз это сравнивает предыдущее виртуальное дерево к следующему.
На данный момент мы получаем платформу-зависимую. Если вы редаете до DOM, это может быть, что только один класс на одном элементе изменился. Реагировать прогуляться по виртуальному дереву, найдите то, что изменилось, и обновите как можно меньше.
Это может означать обновление одного атрибута класса, или это может означать разрыв всего дома. Это Примирение Отказ
До волокна это было это. Работа была выложена, а рендерер по выбору попал на работу. Даже если браузер отстает отставать, пользователь печатал, или планета собиралась взорваться, поезд Render не остановится. ?
Как это работает (на высоком уровне)?
С волокнами теперь различные уровни приоритета для обновлений. Обновление ввода пользователя печатает, имеет более высокий приоритет, чем список с тысячами компонентов.
Волокно нарушает вычисление дерева в единицы работы, что может «совершить» в любое время. Так что такое единица работы? Это просто узел в вашем компонентном дереве!
- Реагирование теперь может приостановить, возобновить и перезапустить работу по компоненту. Это означает, что некоторые крючки жизненного цикла могут стрелять более одного раза.
- Реагистрация может иметь систему обновления на основе приоритета. Это позволяет команде реагирования точно настроить рендерер, чтобы реагировать самые быстрые во время наиболее распространенных случаев использования.
Хотя я хочу сосредоточиться на этом первой точке. Реагирование будет уходить от (но все еще поддерживает!) Некоторые старые жизненные циклы и добавляют некоторые новые! ?
ComponentWillmount , ComponentWillUpdate , ComponentWillReceiveProps теперь может выстрелить несколько раз. Вы не должны вызывать побочные эффекты здесь.
Теперь вы хотите пожарить побочные эффекты в крючков жизненного цикла, который будет только пожарным один раз: ComponentDidmount и ComponentDidupdate.
Чтобы составить много случаев использования, которые ComponentWillReceiveProps Накрыто, мы будем получать два новых крючка.
getderedstatefrompropsкоторый не имеет доступа к предыдущему реквитурю или экземпляру компонента, но позволяет синхронизировать состояние с вашими реквизитами.getsnapshotbeforeupdateДает вам доступ к доме до обновления. Значение, которое вы возвращаете, используется вComponentDidupdateОтказ
Таким образом, Волокно позволяет реагировать на точный рендеринг мелодии, чтобы убедиться, что наиболее важные обновления происходят как можно скорее, Все для затраты на свет о некоторых жизненных циклах и галлонов крови Facebook Dev. ?
Если у вас есть какие-либо вопросы или ищете наставничество по реагированию One-One, не стесняйтесь твитнуть мне @Yurkaninryan любое время!
Если вам нравится мой стиль письма, вот некоторые другие статьи, которые я сделал.
Удачи и счастливые кодировки! ??
Оригинал: “https://www.freecodecamp.org/news/lets-fall-in-love-with-react-fiber-90f2e1f68ded/”