Ребят. Такой вопрос. В БД есть таблица. Там много записей (более 10 000). Vue подтягивает все записи за раз. Все это дело ужасно лагает, что не удивительно. Можно добавить пагинацию и подтягивать по 100, например. Это приемлемо. Но есть фильтр, с помощью которого осуществляется поиск по этой таблице. Хотялось бы, чтобы фильтр работал без дополнительных запросов на сервер. Это возможно без лагов? Или надо постоянно отправлять query на сервер, чтобы там все это дело обрабатывалось, а на клиенте только рендерить....
Это извечный и сложный вопрос. В одном сообщении не ответить. Это материал на несколько статей. Если коротко, то есть два вида: все на клиенте, все на сервере. Вытягивать сразу 10 000 данных и ими играться на клиенте плохая практика, особенно если они тяжелые. Плюс, надо учитывать, что в БД могут появиться новые записи за это время.
Добавляя пагинацию, тоже создаются определенные проблемы. Они тоже все известны. Опять же если у тебя есть рейтинги/сортировки - это еще сложнее задача. Банальные примеры: новостные сайты (тот же хабр), где у тебя видно 1-2-3 страницы, а потом дочитав все ты можешь не найти третью страницу.
В итоге, правильнее всего, при изменяющихся данных обрабатывать на сервере, а на клиенте играть данными в виде "пачек" по 10-20 штук. Причем самое крутое, это чистить клиентский код от того, что уже "не показывается", но когда возвращаешься - снова отрисовываешь, но уже из кеша. Хороший пример - яндекс.музыка. Посмотри как там DOM сделан при инфинити скролл.