Не совсем понятно насчет неэффективной работы напрямую с DOM. В примере приводится случай когда нужно удалить элемент. Для этого я просто вызову на этом элементе метод remove(). Реакт сделает это эффективнее? Напротив, Реакту нужно будет провести сравнение между старым и новым деревом, хоть и поверхностное, но все же это обход всего виртуального дерева. А затем точно также взаимодействовать с реальным DOM. Так где профит с точки зрения эффективности?
Через querySelector будет наверняка работать быстрее, но когда у вас большой интерактивный проект, код станет адским для поддержки. Реакт хорош тем, что позволяет абстрагироваться от императивной работы с DOM, используя концепцию состояний, и в то же время не перерендеривать всю страницу на каждый чих. Он точечно применяет изменения, сохраняя баланс между временем на сравнительный обход деревьев и временем на вызовы непосредственно DOM API, как раз благодаря описанному в видео эвристическому алгоритму.
@@АлександрКасатов Спасибо, но это не совсем то о чем я спрашивал. Речь идёт о произвольности. Я понимаю, что Реакт сравнивает деревья и самостоятельно решает что нужно обновить в DOM и как это сделать эффективнее. Но в конечном моменте React всё равно производит манипуляции с реальным DOM при помощи DOM API, вызывая самые обычные методы по типу remove, append, appenChild и т.д.. Так вот, можно же сделать те же самые манипуляции самим. Реакт не добавляет производительности, а всего лишь делает взаимодействие с DOM удобнее
Золотое видео, спасибо Алексею за понятную и красивую подачу материала.
Не совсем понятно насчет неэффективной работы напрямую с DOM.
В примере приводится случай когда нужно удалить элемент. Для этого я просто вызову на этом элементе метод remove(). Реакт сделает это эффективнее?
Напротив, Реакту нужно будет провести сравнение между старым и новым деревом, хоть и поверхностное, но все же это обход всего виртуального дерева. А затем точно также взаимодействовать с реальным DOM.
Так где профит с точки зрения эффективности?
Через querySelector будет наверняка работать быстрее, но когда у вас большой интерактивный проект, код станет адским для поддержки. Реакт хорош тем, что позволяет абстрагироваться от императивной работы с DOM, используя концепцию состояний, и в то же время не перерендеривать всю страницу на каждый чих. Он точечно применяет изменения, сохраняя баланс между временем на сравнительный обход деревьев и временем на вызовы непосредственно DOM API, как раз благодаря описанному в видео эвристическому алгоритму.
@@АлександрКасатов Спасибо, но это не совсем то о чем я спрашивал.
Речь идёт о произвольности. Я понимаю, что Реакт сравнивает деревья и самостоятельно решает что нужно обновить в DOM и как это сделать эффективнее.
Но в конечном моменте React всё равно производит манипуляции с реальным DOM при помощи DOM API, вызывая самые обычные методы по типу remove, append, appenChild и т.д..
Так вот, можно же сделать те же самые манипуляции самим. Реакт не добавляет производительности, а всего лишь делает взаимодействие с DOM удобнее