#23 nextTick - Vue.js: нюансы

แชร์
ฝัง
  • เผยแพร่เมื่อ 24 ก.ย. 2024
  • Вопросы? Присоединяйтесь к сообществу t.me/vuejs_club
    Итоговый код урока: gitlab.com/vue...
    Материалы к видео:
    - ru.vuejs.org/v...
    Видео создано благодаря подписчикам проекта на нашем Patreon.
    Присоединяйтесь! / javascriptninja

ความคิดเห็น • 55

  • @alexchexes
    @alexchexes 11 หลายเดือนก่อน +3

    Увидел сам по ходу прошлых уроков, пытался решить теми же способами что автор сейчас показал как нерабочие, а в конце прошлого урока уже почти отчаялся и чуть не перешёл к тому, чтобы поставить setTimeout (🤦‍♂) Но решил на всякий случай открыть начало следующего (этого) видео, и... вот как чувствовал!) Счастью не было предела, что это не я накосячил где-то или курс устарел и во Vue3 всё поменялось, а что проблема "задумана", и автор разбирает всю суть и показывает правильное решение. ТОП! Спасибо огромное за курс!

  • @HappyHidra
    @HappyHidra ปีที่แล้ว

    Какой же кайф, что я сам это увидел и решил до просмотра следующего видео))

  • @leopard349749
    @leopard349749 3 ปีที่แล้ว +9

    Для меня однозначно в watch: Вотчеры отвечают на вопрос - если что-то изменилось, сделай то-то. Изменился выбранный тикер? Пересчитай.

  • @barrettM8
    @barrettM8 3 ปีที่แล้ว +2

    Спасибо, как обычно очень круто 👍

  • @serg8483
    @serg8483 3 ปีที่แล้ว

    Илья, я тебе очень благодарен за твои видео. Большое человеческое спасибо!

  • @alexanonymous5823
    @alexanonymous5823 3 ปีที่แล้ว +1

    блин круто что вы разные фишки дев тулзов используете, я про них даже и не думал раньче=))

  • @nekotoriy
    @nekotoriy 3 ปีที่แล้ว +1

    Спасибо, всё по полочкам)

  • @vdvchannel7765
    @vdvchannel7765 ปีที่แล้ว

    база , виручив 👍

  • @alexanonymous5823
    @alexanonymous5823 3 ปีที่แล้ว

    огонь=)) спасибо большое=))

  • @ruslanvoroshchukowlookitlt245
    @ruslanvoroshchukowlookitlt245 3 ปีที่แล้ว +4

    думаю watch будет лучше, чтобы в методе оставалась только логика отображения, которая может измениться в дальнейшем, а watch будет отслеживать только изменения нужных данных, но возможно ошибаюсь

  • @JavaScriptNinja
    @JavaScriptNinja  3 ปีที่แล้ว +10

    Следующее видео выйдет 19.03.2021 в 10:00

    • @alexejks8468
      @alexejks8468 3 ปีที่แล้ว +8

      нет (

    • @cikada3398
      @cikada3398 3 ปีที่แล้ว

      где? или нужно задонатить на питрион?

    • @JavaScriptNinja
      @JavaScriptNinja  3 ปีที่แล้ว +2

      @@cikada3398 жизнь задержалась на месяцок. Скоро :)

  • @diamondserg-43
    @diamondserg-43 2 ปีที่แล้ว +1

    лучше не в watch так как эта вещь тяжелая и есть риск возникновения рекурсии

  • @АлексейАлексеев-ю3ъ
    @АлексейАлексеев-ю3ъ 3 ปีที่แล้ว

    Спасибо!

  • @Peter-vz4tb
    @Peter-vz4tb 3 ปีที่แล้ว +4

    $nextTick() вместо setTimeout то что надо, главное верно его использовать
    Я бы в методе оставил

  • @neodinok-it3ym
    @neodinok-it3ym ปีที่แล้ว

    Спасибо за объяснение только что спросили на собесе это

  • @slaty331
    @slaty331 2 ปีที่แล้ว +1

    Думаю в watch. Например, в будущем мы захотим отрисовать график сразу по кнопке добавить. Изменяем только текущий ticker, watch отследит и не будет повторения кода. С другой стороны мне сложно становиться ориентироваться в таком коде. Вот метод select по нему мы делаем то то, а в итоге он за собой еще паровоз тянет.

  • @yankvasya
    @yankvasya 10 หลายเดือนก่อน

    Спасибо большое за урок
    Хотел поначалу спросить, являлось ли в данном кейсе валидным использование v-show для графика вместо v-if, но проверив, выяснилось, что в этом случае также не получится высчитывать ширину, если график скрыт :)
    Поэтому следующий вопрос - можно ли заместо использования nextTick просто повесить сам ref на, к примеру, контейнер? у него такая же ширина и контейнер у нас отрисовывается всегда
    Является ли такое решение - решением? Или nextTick единственный валидный вариант в таком случае?

    • @yankvasya
      @yankvasya 10 หลายเดือนก่อน

      в этом уроке основная мысль была: если дело касается отрисовки dom, есть nextTick
      было сказано и если используется nextTick не для манипуляций с dom - значит что-то делается не так
      но не было сказано, является ли это единственный правильным решением
      в документации также не нашел текста, который бы прямо говорил "Если DOM, то nextTick, не нужно искать 'окольных путей' "
      ```
      When you mutate reactive state in Vue, the resulting DOM updates are not applied synchronously. Instead, Vue buffers them until the "next tick" to ensure that each component updates only once no matter how many state changes you have made.
      nextTick() can be used immediately after a state change to wait for the DOM updates to complete. You can either pass a callback as an argument, or await the returned Promise.
      ```

  • @yurastasyuk5783
    @yurastasyuk5783 3 ปีที่แล้ว

    Круто, на попередньому відео про Ref чекав моменту коли воно поламається бо ref не існує в mounted, а воно працювало і подумав що то різниця у Vue 3 так, що ref в mounted досутпний без тіка :)
    Поліз в документацію Vue 2 i Vue 3, перепровірив в коді і не міг поняти чому воно працює на відео, а в мене ні. Добре що глянув назву цього відео))
    Коли лише починав на Vue писати і переносив проект з jquery на Vue часто користувався ref і зловив цю помилку і добрі люди на форомі Vue підказали tick юзати.

  • @зухрамзалдымов
    @зухрамзалдымов 3 ปีที่แล้ว +1

    Привет, во vue 2 вынес fetch в другой файл все как на видео. в ответ приходит всегда андефайнет. Если же ничего не менять в том фетче и перенести его обратно в компонент то все нормально не знаю в чем проблема может будет минута обьяснить в каком-то из видео или в тут ответишь.))

  • @Epic0n
    @Epic0n 3 ปีที่แล้ว +1

    Возможно я ошибаюсь но както не очень явно получается вызов некст тика и ожидание того что должно произойти. Я к тому что есть ли у нас гарантия того что должно быть после некст тика, и как это увидить в коде через месяц, а если есть какойто еще параметр который заблокирует рендер этого элемента в другом месте? К примеру в реакте мы можем вызвать колбек на рефе и гарантированно получить елемент который нам нужен только тогда когда он отрендерится не думая о том каким образом это случится с самим елементом и что будет предшествовать его рендеру. Мне кажется что у этой истории с некс тиком должно быть продолжение :)

    • @JavaScriptNinja
      @JavaScriptNinja  3 ปีที่แล้ว

      Если вы прочитаете доки, то увидите что во вью точно так же есть колбек рефы.

  • @deanArtDev
    @deanArtDev 3 ปีที่แล้ว

    Илья когда продолжение этого восхитительного курса ? =)

    • @JavaScriptNinja
      @JavaScriptNinja  3 ปีที่แล้ว +4

      Сегодня ночью надеюсь

  • @user-san-chous
    @user-san-chous 3 ปีที่แล้ว +3

    Уже скоро месяц со дня выхода этого урока(( я думал, что пока дойду до него, то будет много новых выпусков((

    • @JavaScriptNinja
      @JavaScriptNinja  3 ปีที่แล้ว +3

      Что поделать, придется ждать понедельника или вторника, возобновляем выпуски, потом после 50 и 100 тоже будут перерывы

    • @user-san-chous
      @user-san-chous 3 ปีที่แล้ว

      @@JavaScriptNinja в одном из выпусков от Вас прозвучала фраза "наш курс неуклонно движется к концу". И я подумал, что будет всего выпусков 30 )) во как быстро Вью можно освоить)) А так получается даже до экватора еще далеко)
      В любом случае нереально благодарен за такой курс - это лучший формат среди возможных. Ну а с частотой выхода приходется смериться)

    • @JavaScriptNinja
      @JavaScriptNinja  3 ปีที่แล้ว +5

      @@user-san-chous Не курс, криптономикон ) Следующее задание будет другим. Обещаю не делать больше таких пауз

    • @АндрейСилецкий-ч3е
      @АндрейСилецкий-ч3е 3 ปีที่แล้ว

      @@JavaScriptNinja сегодня будет выпуск?

    • @JavaScriptNinja
      @JavaScriptNinja  3 ปีที่แล้ว +3

      @@АндрейСилецкий-ч3е Да, сейчас конференцию веду

  • @TheSe7enM
    @TheSe7enM 3 ปีที่แล้ว

    Ребят подскажите пожалуйста - я хочу писать на Vue 3 или даже Vue Composition API в Alt V (GTA 5), как компиляцию .... статичной что ли, чтобы загружать сайт не через Serve (и т.п.), а обычным открытием файла .html

  • @StewieRus
    @StewieRus 3 ปีที่แล้ว +1

    В методе выглядит логичнее, ширина экрана ведь не меняется при изменении монеты

  • @yougang1
    @yougang1 2 ปีที่แล้ว

    Парни кто в курсе, какая тема оформления VsCode стоит у Ильи на этом видосе?

  • @sad_rin
    @sad_rin 3 ปีที่แล้ว +1

    Для меня было болью в большом проекте, что nextTick ждет только перерисовку компонента, в котором он вызван, а не всего приложения в целом. Нужно это учитывать.

    • @JavaScriptNinja
      @JavaScriptNinja  3 ปีที่แล้ว +1

      Это не так, вернее не совсем так :)

    • @ТарасМаковейчук
      @ТарасМаковейчук 3 ปีที่แล้ว

      В этом случае архитектура проекта кривая, и жаловаться на nextTick не нужно.

    • @sad_rin
      @sad_rin 3 ปีที่แล้ว +1

      @@ТарасМаковейчук динамически подключаемые компоненты с отключеным prefetch'ем - кривая архитектура? Кейсы разные бывают.

    • @ТарасМаковейчук
      @ТарасМаковейчук 3 ปีที่แล้ว +1

      @@sad_rin Зачем в этом случае nextTick ? Меняется стейт в компоненте и соответственно подстраивается отображение. Меняется стейт зависимого компонента и меняется его отображение.
      Я предполагаю, что в компоненте была реализована логика приложения (что архитектурно неверно), и это вызвало проблему.

  • @aleksandrmatyka3118
    @aleksandrmatyka3118 3 ปีที่แล้ว +11

    vue уже явно не проще реакта)

  • @НикитаГончаров-ы4ц
    @НикитаГончаров-ы4ц 3 ปีที่แล้ว

    Писал-писал костыли... А оно оказывается не надо было. Спасибо за хорошего студента, но можно предупреждать, что исправлять не надо))

  • @andriygaidar4913
    @andriygaidar4913 3 ปีที่แล้ว

    А курс ще продовжиться?

    • @JavaScriptNinja
      @JavaScriptNinja  3 ปีที่แล้ว

      Ага, сегодня (или может уже завтра календарно)

    • @andriygaidar4913
      @andriygaidar4913 3 ปีที่แล้ว +1

      @@JavaScriptNinja а відео так і немає((

  • @ИгорьКовальков-м3ш
    @ИгорьКовальков-м3ш 3 ปีที่แล้ว +2

    Это не колбэк - это промис !!!

    • @JavaScriptNinja
      @JavaScriptNinja  3 ปีที่แล้ว +7

      Вы не понимаете, это другое

  • @casedup
    @casedup 2 ปีที่แล้ว

    english please :(

  • @ВикторЧубирка-и9ъ
    @ВикторЧубирка-и9ъ 2 ปีที่แล้ว +1

    Не много не понятен момент на 5:10 с this.$nextTick.then(this.calculateMaxGraphElements). nextTick принимает колбек, мы можем записать просто this.$nextTick(this.calculateMaxGraphElements) и сэкономить на слове then

    • @JavaScriptNinja
      @JavaScriptNinja  2 ปีที่แล้ว

      я не люблю использовать коллбеки, предпочитаю промисы