Size: a a a

JavaScript Noobs — сообщество новичков

2020 February 24

BA

Bogdan Aleksandrovic... in JavaScript Noobs — сообщество новичков
всем привет, подскажите как реализовать пагинацию, рисовать не все страницы, а прятать те, которые лишние
источник

S

Snake in JavaScript Noobs — сообщество новичков
Bogdan Aleksandrovich
всем привет, подскажите как реализовать пагинацию, рисовать не все страницы, а прятать те, которые лишние
Данные ты как получать собираешься? На клиенте всё хранить или на беке?
источник

BA

Bogdan Aleksandrovic... in JavaScript Noobs — сообщество новичков
Snake
Данные ты как получать собираешься? На клиенте всё хранить или на беке?
да а разница? я не могу скрыть кнопки
источник

S

Snake in JavaScript Noobs — сообщество новичков
Bogdan Aleksandrovich
да а разница? я не могу скрыть кнопки
Разница в реализации
источник

BA

Bogdan Aleksandrovic... in JavaScript Noobs — сообщество новичков
мне логику скрытия, остальное додумаю
источник

S

Snake in JavaScript Noobs — сообщество новичков
Тут логики скрытия никакой не должно быть
источник

S

Snake in JavaScript Noobs — сообщество новичков
Вся суть в том, что ты получаешь ограниченное количество данных, обычно через LIMIT и OFFSET в SQL запросе
источник

BA

Bogdan Aleksandrovic... in JavaScript Noobs — сообщество новичков
createPagination({
   itemOnPage: 5,
   allItems: 50,
   currentItem: 12
})

что то такое должно в итоге выйти
источник

BA

Bogdan Aleksandrovic... in JavaScript Noobs — сообщество новичков
<1,2...,5,6,7...50
источник

JC

J. C. in JavaScript Noobs — сообщество новичков
Lookarious
Зачем ставить undefined когда есть null?
Вопрос не в том зачем. А в том что такое может быть и это разные вещи. А undefined иногда удобнее использовать, например с TS и React , когда в пропсы нужно опционально ничего не передавать
источник

S

Sm•ok 😈✔️ in JavaScript Noobs — сообщество новичков
Lookarious
Зачем ставить undefined когда есть null?
null — пустота
undefined — неизвестность, отсутствие значение

Обычно юзаю для этого
источник

S

Snake in JavaScript Noobs — сообщество новичков
Bogdan Aleksandrovich
createPagination({
   itemOnPage: 5,
   allItems: 50,
   currentItem: 12
})

что то такое должно в итоге выйти
Ну короче. У твоего источника данных должна быть возможность разбивки данных. Допустим у тебя обычный массив. У тебя должна быть такая формула
offset = (currentPage - 1) * itemsOnPage;
источник

S

Snake in JavaScript Noobs — сообщество новичков
offset  в данном случае - это индекс элемента, с которого нужно начинать собирать данные.  И собственно сами данные ты собираешь с offset по offset + itemsOnPage
источник

S

Snake in JavaScript Noobs — сообщество новичков
Примерно понятно объяснил?
источник

BA

Bogdan Aleksandrovic... in JavaScript Noobs — сообщество новичков
пока не особо пойму
источник

S

Snake in JavaScript Noobs — сообщество новичков
Ну вся суть пагинации в том, что у тебя есть источник данных и тебе нужно из него брать элементы начиная с определенной позиции. Например если у тебя лимит элементов на странице 5 - то это всегда будет limit * page. И с этой позиции тебе нужно взять количество элементов, равное лимиту.
источник

S

Snake in JavaScript Noobs — сообщество новичков
Извини, я не знаю как лучше объяснить
источник

S

Sm•ok 😈✔️ in JavaScript Noobs — сообщество новичков
J. C.
Есть тонкости. Например obj = { field: undefined }; В таком объекте существует поле field ? Если делать проверку через  obj.field === undefined то его вроде как не существует. Но при этом Object.keys(obj).length будет равно 1. А вот 'field' in obj таки даст true, показывая, что такое свойсво все же есть, с явно заданым undefined. Еще есть вариант obj.hasOwnProperty('field')
obj.hasOwnProperty('key') предпочтительнее, я думаю. key in obj лезет в прототип
источник

S

Sm•ok 😈✔️ in JavaScript Noobs — сообщество новичков
Для проверки наличия ключа
источник

BA

Bogdan Aleksandrovic... in JavaScript Noobs — сообщество новичков
Snake
Ну вся суть пагинации в том, что у тебя есть источник данных и тебе нужно из него брать элементы начиная с определенной позиции. Например если у тебя лимит элементов на странице 5 - то это всегда будет limit * page. И с этой позиции тебе нужно взять количество элементов, равное лимиту.
у меня есть текущая страница, предыдущая страница, нужно добавить кол-во еще кнопок, которые рисовать?
источник