Я вырос с использованием JQuery и следовали шаблон программирования, который можно было бы сказать, «Реагировать -как», но не с помощью Реагировать. Я хотел бы знать, как моя графика работает так хорошо, тем не менее.Реагировать, как программирование без Реагировать
В качестве примера, в моем интерфейсе у меня есть таблица, которая отображает некоторое «состояние» (в React). Однако это «состояние» для меня просто хранится в глобальных переменных. У меня есть функция update_table()
, которая является центральным местом, где происходят обновления таблицы. Он принимает «состояние» и отображает таблицу с ним. Первое, что он делает, это вызвать $("#table").empty()
, чтобы получить чистый старт, а затем заполнить строки информацией о состоянии.
У меня есть динамически изменяющиеся данные («состояние») каждые 2-3 секунды на стороне сервера, которые я опроса использую Ajax, и как только я получу данные/«состояние», я просто вызываю update_table()
.
Это идеальная проблема для решения с React, я знаю. Однако после реализации этого простого решения с JQuery я вижу, что он работает отлично (я не заполняю огромную таблицу здесь, у меня максимум 20 строк и 5 столбцов).
Я ожидал увидеть мерцание из-за вызова $("#table").empty()
с последующим добавлением строк один за другим внутри функции update_table()
. Тем не менее, браузер (хром/сафари) каким-то образом, похоже, делает очень хорошую работу по обновлению только тех элементов, которые фактически изменились (почти как если бы браузер имел реализацию Virtual DOM/diffing, например React!)
Вероятно, вы знаете: большая разница между подходом к доброму реагированию и реальной библиотекой ReactJS или аналогичной - это присутствие Virtual DOM; вы не можете сделать это с помощью jQuery или аналогично. Это делает React-подобное программирование, возможно, более читаемым, а затем типичным кодом jQuery, но все же он уносит 90% от значения реакции с отсутствием VD – shershen
Спасибо. Чтобы быть ясными, я не сторонник JQuery над React. Мне было очень любопытно узнать, как браузер выполняет эту «виртуальную DOM» -подобную производительность без React. –
Рендеринг 20 строк с 5 столбцами без мерцания - это не «виртуальная DOM» -подобная производительность, с таким маленьким и простым набором данных, что просто не имеет большого значения для современного компьютера, с которым можно справиться. –