2016-02-03 1 views
0

Имеет ли React/response-dom возможность вручную сравнивать две копии, получать diff и применять diff к dom вручную?Захват React Diffs и их исправление вручную

Как это происходит сейчас, похоже, что процесс различения и исправления выполняется внутри, но я надеюсь сделать это отдельно.

ответ

1

Нет, в настоящее время нет способа сделать это. Не совсем уверен, почему вам понадобится Реакт, если вы будете делать примирение самостоятельно. Как вы говорите, это делается внутренне. Вероятно, вы могли бы использовать fork react и изменить способ его разграничения или, возможно, даже открыть внешний API, чтобы разработчики могли делать свои собственные различия, если захотят.

Реакция довольно хороша в том, что она делает, и вряд ли вы сделаете лучше. См. Разделы Reconciliation и Advanced Performance, чтобы узнать больше о том, как React does diff.

Теперь, что вы можете сделать в компоненте React, задайте метод shouldComponentUpdate и сообщите каждому компоненту, если он должен обновить (и, возможно, придется согласовать) DOM. Это рекомендуется для повышения производительности, если ваши компоненты чистые на основе реквизита/состояния.

+0

Облом. Я пытаюсь вычислить «diff», сделать что-то в html, а затем применить измененный diff к копии оригинального недифференцированного dom. – goofiw

+0

Возможно, есть способ динамически менять место приложения, а затем вы можете сравнить предыдущий рендер с новым –

Смежные вопросы