Здравствуйте. Есть проект изначально писался на реакте, основной причиной было то что в нем используется листинг в которм может быть 10 000 элементов и они сразу отображаются на экране. Пользователь взаимодействует с этим списком удаляя и раскрывая эти элменты. В реакте все это делает виртуал дом. Это мой первый проект на реакт и там чистый реакт без TS и бэм. все это выглядит очень плохо и есть желание перенести все на классический бэм стек так как на бэм реакт не хватает знаний и опыта пока. Будет ли проблема работы с этим списком на классическом стеке? Я так понимаю без виртуального дом удалять и вставлять в элементы в список будет ресурсоемко, или нет?
виртуальный дом — это не про ускорение, а про костыли, чтобы не было совсем уж медленно.
суть работы реакта в том, что при изменении данных (в описанном случае — массива со списком элементов) реакт перерисовывает весь список заново, даже если поменялся всего один элемент. и если делать это в лоб, замедление по сравнение с ручным изменением нужного элемента списка было бы катострофическим. именно здесь на помощь приходит виртуальный дом — список перерисовывается не на странице, а сначала просто в памяти, потом вычисляется дифф между новой структурой в памяти и тем, что сейчас на странице, потом вычисляется набор мутаций дома, которые приведут его в нужное состояние. эти вычисления, разумеется, тоже не бесплатные, но сильно дешевле, чем заменять все. однако в любом случае в итоге придется поменять реальный дом.
а на классическом бэм-стеке можно пропустить все шаги с перерисовкой всего списка и просто явно поменять нужный элемент. это по определению будет эффективнее, чем на реакте.