[ВАЖНО - Читай описание] Таблица на Vue.js. VUEX+AXIOS+API. Пагинация и сортировка данных.

Поділитися
Вставка
  • Опубліковано 26 лис 2024

КОМЕНТАРІ • 104

  • @ВиталийСлободянюк-х8м

    Канал достоин подписоты. Побольше Vue - как он самый легкий из (Vue, React, Anglural)

  • @mikhail2238
    @mikhail2238 4 роки тому +6

    Спасибо за видео! Единственное нормальное объяснение реализации пагинации которое я видел. Лайк!

    • @gofrontend2220
      @gofrontend2220  4 роки тому +1

      Михаил Сергеевич рад стараться:)

    • @mikhail2238
      @mikhail2238 4 роки тому +1

      @@gofrontend2220 а не подскажите, из за чего после обновления страницы может все ломаться и ничего не отображаться на странице (добавлял эту возможность на свой сайт)? Дело видимо именно в добавленной пагинации, ибо если её закомментить то все работает как раньше :/

    • @gofrontend2220
      @gofrontend2220  4 роки тому +1

      Mikhail так трудно сказать. Надо кол видеть. Можете в телеграм написать @aboltnev

    • @Cheetaqueue
      @Cheetaqueue 4 роки тому +1

      @@mikhail2238 Из-за того, что у тебя таблица не может стартовать из-за отсутствия данных. Скорее всего в хранилище нужно прописать users = []

  • @BenYouTube_
    @BenYouTube_ 3 роки тому

    Спасибо, куча полезных видео по вью посмотрел. Почти во всем разобрался, а вот связку vuex + axios ты мне помог понять. Жму руку 🤝

  • @ZaurBejerei
    @ZaurBejerei 4 роки тому +9

    Огонь!)

  • @Сергей-г3ы6с
    @Сергей-г3ы6с 2 роки тому

    спасибо большое за пагинацию более чем понятно

  • @alexeykornev4048
    @alexeykornev4048 4 роки тому +3

    Очень полезный урок! Респект

  • @АнастасияНовикова-ч1ц

    Спасибо огромное за ваши уроки! Все просто и понятно! Продолжайте снимать!

  • @Erlqq
    @Erlqq 4 роки тому +6

    А как сортировать в обратном порядке, при последующих кликах? как toggle

  • @ВасяПупкин-н9д9с
    @ВасяПупкин-н9д9с 4 роки тому +3

    я чет не пойму ток одного, в чем смысл такой пагинации и сортировки именно на фронте?(т.е для этого нам надо получать сразу все данные из БД, а если их там 10 000+) так кто то вообще делает? я всегда думал, что например для пагинации инфу надо получать кусками(т.е нажал на страницу получил нужные позиции с сервака) и касательно сортировки тож самое

  • @СтепанПалий-д9ж
    @СтепанПалий-д9ж 4 роки тому

    как раз на тестовом задании нечто подобное дали. начал гуглить, на твой видос наткнулся) то что надо.
    вот если бы ещё показал как сделать asc desc было бы 5+++ ))

  • @VIMPdev
    @VIMPdev 4 роки тому +27

    Только автор забыл добавить, что на реальных проектах так делать нельзя. Пагинация должна делать запросы к БД и брать оттуда только необходимое кол-во записей. Иначе при сравнительно большом количестве записей, ваш метод положит любой браузер. От такой пагинации нет никакого смысла, разве что с массивами попрактиковаться :)

    • @isos6534
      @isos6534 2 роки тому

      А как правильно? подскажите видео или материал по лучше?

    • @VIMPdev
      @VIMPdev 2 роки тому

      @@isos6534 Я уже не помню что в видео, но по хорошему если в таблице, допустим выводится 20 записей, при загрузке страницы из базы тянутся первые 20 записей и выводятся. На второй странице пагинации снова идет запрос к базе и тянутся записи с 21 по 40 и так далее. Конечно можно оптимизировать, что бы при возврате на первую страницу не лезть в БД, но это уже нюансы.

    • @isos6534
      @isos6534 2 роки тому

      @@VIMPdev спасибо, а можешь туториал сделать?

    • @clevervlad1999
      @clevervlad1999 2 роки тому

      ​@@VIMPdev ок, что делать с сортировкой? Каждый раз при запросе к БД сортировать данные таблицы и брать нужные записи? Или подготавливать заранее отсортированные таблицы в БД и зависимо от запроса тянуть данные с разных таблиц?

    • @VIMPdev
      @VIMPdev 2 роки тому

      @@clevervlad1999 нет, этим всем занимается api по которому вы обращаетесь. Вы просто передаёте нужные параметре в запросе и вам возвращается отфильтрованные данные.

  • @Happy-gf9xg
    @Happy-gf9xg 3 роки тому

    Крутой канал! Спасибо за видео

  • @nataliagolubeva4726
    @nataliagolubeva4726 2 роки тому

    Spasibo! Dolgo iscala prostyu schemy kak postroit pagination

  • @nisk_101
    @nisk_101 3 роки тому

    лучшее видео!

  • @AlexandrSpirit
    @AlexandrSpirit 3 роки тому

    Таблица - это хорошо.
    Не хватает CRUD функционала. Например эконки EDIT на каждой строке, кликнув на которую появляются кнопки save/cancel и мы можем изменить данные.

  • @isopp7744
    @isopp7744 4 роки тому +1

    data: github.com/antonboltnev/vue-portfolio-code-example/blob/master/db.json

  • @qqfakez
    @qqfakez 4 роки тому +1

    есть такой момент, если например нажать в браузере назад, то будет перекидывать на предыдущую страницу на сайте, а не по пагинации

    • @andreikan4894
      @andreikan4894 2 роки тому

      тут реализация без vue-router, в SPA преложениях с установленным vue-router спокойно привяжете маршруты к соответствующим страничкам. У автора на канале есть уроки по vue-router.

  • @viktoriacui
    @viktoriacui 3 роки тому

    Тот момент, когда ставишь лайк одновременно с кнопкой воспроизвести) спасибо! У вас есть свой курс?

  • @almaz1502
    @almaz1502 3 роки тому +1

    Не совсем понял, как вы по переменной pages, которая возвращает число прошлись циклом.. (22.47)

    • @neodaan
      @neodaan Рік тому

      да, мне тоже интересно

  • @aigooner406
    @aigooner406 4 роки тому +1

    Спасибо за урок! У меня такой вопрос: а нельзя было использовать Vuetify? Там все эти фишки(сортировка, пагинация) уже встроены. Это значительно сократило бы время. И используете ли вы сами для проектов Vuetify?

    • @gofrontend2220
      @gofrontend2220  4 роки тому +4

      ai Gooner ну мы же вроде как учимся:) а вьютифай сделает все за нас и какой смысл в этом?) я не использую его в проектах. Слишком много лишнего

  • @juliashikunova4707
    @juliashikunova4707 4 роки тому

    Спасибо большое!

  • @FiberJack
    @FiberJack 3 роки тому

    а как использовать связи ORM Laravel во vue? не могу найти информацию совсем

  • @golden_horde
    @golden_horde 2 роки тому

    Лайк за шутку

  • @ДенисЗахаренко-х4ы

    Здравствуйте! Как выводить данные, если на странице сделать поиск? Ведь по сути на страницу выводится массив "вырезанный" инструментом slice и мы не можем искать в нем, нам нужно искать в общем массиве. Спасибо большое за видео! Буду благодарен если ответите.

  • @denchen6744
    @denchen6744 3 роки тому

    ''супер таблица, спасибо за просмотр) штука" хехе)

  • @ГеоргийБибаев-х5ш
    @ГеоргийБибаев-х5ш 4 роки тому +1

    Добрый день!
    Спасибо за прекрасные уроки, все понятно, даже в каком-то смысле нативно.
    Кстати, есть помарочка, которая вызвала у меня небольшой затуп: её видно в коде, скажем, на 36:35, в самом верху, в pages(), деление нужно производить не на 10, а на this.usersPerPage; вдруг кому будет полезно.
    Кстати, вопрос по стилю: вы как-то разделяете использование CamelCase и нижних подчеркиваний в названиях переменных или пишете вперемешку оба?

    • @muartem
      @muartem 2 роки тому

      UPPER_SNAKE_CASE используется для констант.

  • @АхмедШакиров-с8т
    @АхмедШакиров-с8т 3 роки тому +1

    Посмотрел этот урок и урок 4/8 про Axios. Сижу уже день не могу получить данные. Это все будет ли работать на Vue CLI 3, Vuex 4 ? Я в форумах искал не нашел ответа консоль не видит ошибок. Что делать ПЖ помогите...(ИСПРАВЛЕНО ответ в кометах)

    • @АхмедШакиров-с8т
      @АхмедШакиров-с8т 3 роки тому +1

      Ошибка была исправлено.)) Ошибка заключалось в моем невнимательности, поле this.GET_PRODUCTS_FROM_API я забыл поставить скобки))))
      mounted() {
      this.GET_PRODUCTS_FROM_API()
      }

  • @oleksiizelenko9357
    @oleksiizelenko9357 4 роки тому

    Вопрос: Обязательно ставить return в стрелочных функциях, по-моему это и так подразумевается? Например когда мы задаем дэфолтное состояние в пропсах.

    • @mclotos
      @mclotos 4 роки тому

      не обязательно, оно работает by default

  • @sadlemon4110
    @sadlemon4110 3 роки тому

    prop: type check failed for prop "row_data". Expected Object, got Array
    Все делал как на видео, но поймал вот такую ошибку

  • @MrReflection540
    @MrReflection540 4 роки тому

    Оч полезное видео, большое спасибо!
    Но возник один вопрос, который я не могу разобрать, можете сможете разъяснить мне пожалуйста, а именно:
    Зачем в App.vue мы импортируем из vuex mapGetters и после передаем поле users в пропсы компонента
    Почему мы сразу в v-table.vue также не импортируем из vuex mapGetters и не используем уже непосредственно там поле users? Зачем передавать через пропсы?

    • @gofrontend2220
      @gofrontend2220  4 роки тому +3

      Mr Reflection в принципе можно, но есть риск того, что таблица уже будет рисоваться в dom, а данные в геттере еще не будут готовы и тогда получим ошибку. Поэтому мы дергаем геттер в родителе, так как дочерний компонент таблицы замаунтится в дом только тогда, когда родительский закончит маунт и как следствие геттер уже будет запрошен и мы гарантированно загрузим его в таблицу.

    • @MrReflection540
      @MrReflection540 4 роки тому

      @@gofrontend2220 понял, спасибо за разъяснение

    • @jackdoe1312
      @jackdoe1312 2 роки тому

      @@gofrontend2220 привет, куда пропал? Ждем твоих крутых видосов. Надеемся - что у тебя все хорошо.

  • @Fess-dt4eo
    @Fess-dt4eo 2 роки тому

    Может кто подскажет , в каком уроке подключали Material Icon ? Я так смотрю он тут не компонентом , а html вставляется , интересно посмотреть поэтапно как установить , при чтении плохо воспринимаю , нужно прям мелочи увидеть , чтобы вопросы отпали

    • @ДмитрийФайль
      @ДмитрийФайль 2 роки тому

      проимпортируй в main.js import 'material-design-icons-iconfont' и тогда сможешь прописывать тег с названием нужной иконки

  • @ckbeg
    @ckbeg 4 роки тому

    Классно

  • @krmi7441
    @krmi7441 3 роки тому

    AxiosResponse возникла ошибка "Type annotations can only be used in TypeScript files.ts(8010)" в файле store. Может у кого тоже была, подскажите решение

    • @sadlemon4110
      @sadlemon4110 3 роки тому

      его не надо писать , это шаблонное заполнение от ВебШтрома(Среды на котором автор пишет)

  • @silveringreviews
    @silveringreviews 2 роки тому

    Это фронт или бэк?

  • @vladislavtishchenko4992
    @vladislavtishchenko4992 3 роки тому

    Реально, а почему не выложить исходники? Я наткнулся на ошибку и хоть убей не могу найти её сравнивая свой код и код на видео, исходник бы помог :(

  • @AlexandrSpirit
    @AlexandrSpirit 3 роки тому

    Если я хочу сделать пагинацию на по количеству строк на странице, а по первой букве user.name ?

    • @AlexandrSpirit
      @AlexandrSpirit 3 роки тому

      Сделал. Корявенько, но получилось.

  • @StormShadow-p9x
    @StormShadow-p9x 4 роки тому +1

    Добрый день а как можно пагинацию ограничить, если данных слишком много которые получаются через API, а если конкретно то данных 7326 и там 440 страниц, которые опознались пагинацией, и как сделать допустим 1,2,3,4,5,6.......438.439.440, если не сложно помогите пожалуйста, пагинация сделана по вашему примеру

    • @TAtoshkkko
      @TAtoshkkko 4 роки тому

      Решили вопрос.? Отпишите пожалуйста

    • @StormShadow-p9x
      @StormShadow-p9x 4 роки тому

      @@TAtoshkkko Давно решил, просто используя плагин пагинации

    • @HearonPlay
      @HearonPlay 4 роки тому

      @@StormShadow-p9x не могли бы вы пожалуйста скинуть код или ссылку на решение данного вопроса? Был бы крайне признателен!

    • @StormShadow-p9x
      @StormShadow-p9x 4 роки тому

      @@HearonPlay Этот вопрсо уже давно не актуален, так как эту работу решают плагины на пагинацию, своими силами не имеет смысла решать задачу

    • @HearonPlay
      @HearonPlay 4 роки тому

      @@StormShadow-p9x спасибо

  • @gofrontend2220
    @gofrontend2220  Рік тому

    ! ВАЖНО - Читайте описание к видео ! 🔥🔥🔥👆👆👆

  • @ЕвгенийАлексеенко-д4щ

    начало разбивки на постраничную пагинацию 21:00

  • @oleksiizelenko9357
    @oleksiizelenko9357 4 роки тому

    Есть бесплатный источник с подготовленной базой данных json
    Разные варианты данных:
    @t - другие варианты
    конкретно для этого урока:
    @t
    Если хочется работать со своими данными тогда можно, как у автора видео.
    Плюс, источника выше - не надо постоянно перезапускать db.json

  • @МаксФамильный-о4п
    @МаксФамильный-о4п 3 роки тому

    Pagination 20:21 ( pun =))

  • @romanmed9035
    @romanmed9035 3 роки тому

    все хорошо, но а если 50 страниц? и квадратиков пагинации будет больше чем список пользователей.

    • @nuraimaratova480
      @nuraimaratova480 3 роки тому

      pages.slice(index-1, index+1).map(page => page)

    • @romanmed9035
      @romanmed9035 3 роки тому

      @@nuraimaratova480 спасибо. но вопрос не в теоретической реализации для меня конкретного, а чтобы это показать зрителям.

  • @tinaanit2965
    @tinaanit2965 3 роки тому

    20:40 Давайте Сделаем Пагинацию

  • @ВиталийАрдашов
    @ВиталийАрдашов 4 роки тому +2

    Полезный урок, но как пожелание: поменьше "ээээ"

  • @ВасяИванов-ж7м
    @ВасяИванов-ж7м 4 роки тому +1

    Исходники можно же было выложить

    • @ВиталийСлободянюк-х8м
      @ВиталийСлободянюк-х8м 4 роки тому

      напиши сам =)

    • @ВасяИванов-ж7м
      @ВасяИванов-ж7м 4 роки тому +1

      @@ВиталийСлободянюк-х8м ЖЕЛАНИЕ ПРОПАДАЕТ СМОТРЕТЬ И СОВМЕСТНО ДЕЛАТЬ, ТЕРЯЕШЬ ЗРИТЕЛЕЙ, ПРОГРАММЁР

    • @ВиталийСлободянюк-х8м
      @ВиталийСлободянюк-х8м 4 роки тому +2

      @@ВасяИванов-ж7м я только что прочитал набор слов не связаных между собой))

    • @gofrontend2220
      @gofrontend2220  4 роки тому +1

      А вы хотите все готовое? Такого не будет. Я здесь учу людей как работать с vue. За готовыми решениями - на гитхаб

    • @ВасяИванов-ж7м
      @ВасяИванов-ж7м 4 роки тому +1

      @@ВиталийСлободянюк-х8мнеудивительно, Помимо того, что соображаешь туго, наравне с этим составляешь свои видео.

  • @d0npan152
    @d0npan152 4 роки тому

    Не показано, что прописать в index.html, чтобы всё заработало.

    • @gofrontend2220
      @gofrontend2220  4 роки тому

      d0n pan там ничего не надо писать. А что у вас не работает?

    • @d0npan152
      @d0npan152 4 роки тому

      @@gofrontend2220 не отображается на странице, всё делал по видео. На странице пусто. Если есть телеграмм, могу скрины отправить.

    • @d0npan152
      @d0npan152 4 роки тому

      @@gofrontend2220



      Приложение


      var app = new Vue({
      el: '#app',
      data: {
      }
      })
      Что я здесь забыл указать?

    • @gofrontend2220
      @gofrontend2220  4 роки тому +1

      d0n pan давайте. @aboltnev

  • @MaiklTil
    @MaiklTil 2 роки тому

    Аааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааа!
    Аааааааа!
    Аааааааааааааа!

  • @mediontamginskii5889
    @mediontamginskii5889 4 роки тому +1

    Нифига се и никакой магии??? Воистину говорю вам браты если плохо знаешь CSS, HTML и JavaScript то веб полон чудес и магии для тебя)))))

  • @sviatoslav.hrabar
    @sviatoslav.hrabar 3 роки тому +1

    срака, а де исходник