Тёмный

Ключевые фишки Vue 3 - обзор приятных новшеств 

Дмитрий Лаврик
Подписаться 57 тыс.
Просмотров 28 тыс.
50% 1

Реактивность с Proxy. Fragments, Teleport, обновлённый v-model, немного Composition Api. Подробный базовый курс - js.dmitrylavrik.ru/vue/

Опубликовано:

 

7 окт 2020

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 51   
@andrewivan5423
@andrewivan5423 3 года назад
Дмитрий спасибо за твои материалы , смотреть ролики одно удовольствие, хорошая подача, приятный голос
@MultiVINTAG
@MultiVINTAG 3 года назад
Дмитрий спасибо за вашу подачу, благодаря вам я нашел работу мечты!
@eugenegavrilov2618
@eugenegavrilov2618 3 года назад
Спасибо, самое непредвзятое видео, что я встречал. Показаны плюсы минусы и каждый уже может для себя решить, надо оно ему или нет.
@webxcryptoit7308
@webxcryptoit7308 3 года назад
Дмитрий, спасибо! Красавчик!
@arthurdavinskiy8357
@arthurdavinskiy8357 3 года назад
ставлю лайк, позже посмотрю. спасибо за видос!)
@MetaDriver33
@MetaDriver33 3 года назад
Привет, Дмитрий. Композишн апи был бы не так интересен, если бы дело ограничивалось семантической группировкой сущностей. Но самая вкусняшка в том, что сгруппированные "по смыслу" сущности, можно оборачивать в функции (возвращающие их), и выносить эти группирующие функции в библиотеки. И затем самые различные компоненты, могут эти вынесенные функции дёргать в своих setup'ах и с лёгкостью встраивать в себя готовые куски фунционала. На первый взгляд это похоже ...эээ... на миксины. Таки, да. Но есть небольшие, но крайне существенные различия. Во первых, в отличии от миксинов, эти [библиотечные] функции могут иметь параметры, и возращать "динамически изготовленное" (зависящее от фактических параметров) содержимое. Во вторых, их можно дёргать неоднократно, в пределах одной setup-функции (с различными или одинаковыми параметрами), чтобы создавать необходимое для компонента количество соответствующих функциональных блоков. В третьих, фактические параметры, при вызове могут быть зависимы от пропсов - миксины такого уж точно не умеют. Ну ок. А что же с реактивностью функциональных блоков, возвращаемых этими функциями ? А всё чики-пуки там с реактивностью ! Ибо третий вуй предоставляет апи реактивности, которое позволяет делать реактивными любые JS-переменные, даже если они не в однофайловых вуйских компонетах создаются. Любую библиотечную переменную можно сделать реактивной, если импортировать в либу соответсвующую "реактивизирующую" функцию вуя (например ref()), и завернуть в неё соответствующую переменную. Ну и напоследок. Вообще-то в тройке не обязательно при создании компонента делать выбор между Options API и Composition Api. Дело в том, что любой компонет может использовать ОБА апи одновременно, абсолютно без вреда для здоровья. В этом случае синаксически компонент будет написан "в стиле" Options API, а функция setup будет в нём как бы дополнительных хуком жизненного цикла. "Как бы" - потому, что есть таки некоторые тонкости, которые лучше изучить по документации, ибо место для комментариев на ютубе ограничено... -- P.S. И таки да, Дмитрий - успехов в борьбе в С.Ю.Шиповым )
@nikdanik
@nikdanik 3 года назад
Напиши статью на хабре про все эти фишки нового вью развернуто, с удовольствием бы почитал
@jgkdmdevienjjgg8866
@jgkdmdevienjjgg8866 3 года назад
Да, composition api для сложных компонентов хорошо подходит (намного проще переиспользовать код в сравнении с миксинами/наследованием + меньше проблем с реактивностью), для простых случаев вполне можно оставить options или class api - т.к. они более читабельные для простых кейсов.
@Nikitosss91
@Nikitosss91 Год назад
Дима катает в шахматы против СЮ ?
@AlpinWeb
@AlpinWeb 3 года назад
Мне понравился новый подход, он открывает новые архитектурные возможности, и позволяет удобнее работать с большими компонентами.
@Sergey-jq5kz
@Sergey-jq5kz 3 года назад
телепорт реально крутая штука, реально не хватало
@BraentR
@BraentR 3 года назад
Спасибо
@ruslanmelnychenko3929
@ruslanmelnychenko3929 3 года назад
А вот если использовать setup, и мы говорим про группировке логики, что делать есть переменные взаимосвязаны в разных частях, получается переменные придется объявлять сверху а логику групками писать ниже?
@user-iy6ng5sg4z
@user-iy6ng5sg4z 3 года назад
Дмитрий, теперь, когда завезли нормальную реактивность, хорошо ли будет для мелких и средних проектов хранить глобальный state приложения в $root компоненте? или тут возникнут какие-то подводные камни? (про то что отслеживания состояний как во vuex не будет - понятно, будут ли другие минусы)
@mrzlanx5328
@mrzlanx5328 7 месяцев назад
Спасибо, полезно. Даже через 3 года )
@user-hq3ri7ui7l
@user-hq3ri7ui7l 3 года назад
Дима, здравствуйте! есть вопрос по Вью, есть компонент, самый обычный, в нем есть data, есть methods; я попробовал переместить содержимое methods в data, было три метода, стало ноль, а дейта стала на три поля жирнее. И всё работает, никаких видимых изменений не видно. Но что будет, когда приложение станет больше, как это отразится на скорости? Очень надеюсь на твой профессиональный комментарий)
@user-gr6dw9jd1c
@user-gr6dw9jd1c 3 года назад
ООП - ответ на вопрос
@jgkdmdevienjjgg8866
@jgkdmdevienjjgg8866 3 года назад
на 2 vue есть плагин для фрагментов. проблем с ним не было
@andrufka46rus
@andrufka46rus 3 года назад
на 48 минуте чтобы не писать .value можно же было в return обернуть объект в markRaw
@alexwill7818
@alexwill7818 3 года назад
Все таки композишн апи на любителя, а если взять тайпскрипт то можно вообще класс стайл компонент сделать и группировать как хочешь и выглядит приятно
@yura3d3d
@yura3d3d 3 года назад
Забавно, но у слайдера Swiper сейчас, всего через 2 месяца после выхода этого видео, в списке поддерживаемых версий Vue только тройка
@TheProfessionalGambler
@TheProfessionalGambler 3 года назад
Сделай видео на тему MobX vs Redux Toolkit, кто победит?
@volodgo
@volodgo 3 года назад
Немного не затронули в варианте , случай, если мы используем props Нужно будет использовать, вот такую конструкцию, например: export default { props: { name: String } } let catName = computed(() => props.name.replace(/[_.-]/gi, ' ')) export { catName } Источник: github.com/vuejs/rfcs/blob/sfc-improvements/active-rfcs/0000-sfc-script-setup.md#using-setup-arguments
@yakut54
@yakut54 Год назад
Даёшь Vue 3 + TS Я неделю убил пока c Vuex + TS разобрался. Думаю полезный контент будет. В русскоязычном сегменте ничего не нашёл такого.
@k.safonov
@k.safonov 2 года назад
Никто не разбивает компоненты, если в них 100-200 строк. Вот 600+ строк - это да. И то не всегда их стоить бить на более мелкие части. (я имею в виду компоненты, внутри которых не только логика и разметка, но и CSS).
@jgkdmdevienjjgg8866
@jgkdmdevienjjgg8866 3 года назад
Нехватает функциональности переиспользования кусков верстки внутри одного компонента. сталкивался пару раз. вроде в 3 ничего такого не добавили. в реакте такой проблемы нет, т.к. можно разбить весь "шаблон" на отдельные переиспользуемые методы
@MetaDriver33
@MetaDriver33 3 года назад
JSX в рендер-функциях по прежнему доступен. И вполне можно выносить фрагменты шаблона в переиспользуемые методы, и накапливать их, например, в глобальной либе, а дёргать в рендер-функциях компонентов.
@jgkdmdevienjjgg8866
@jgkdmdevienjjgg8866 3 года назад
@@MetaDriver33 хочется без него. к тому же его нельзя смешивать с темплейтами в рамках одного компонента
@mikech76
@mikech76 3 года назад
переиспользуемый кусок верстки называется ... (дочерний) Компонет? )
@user-kf7xl2gh1q
@user-kf7xl2gh1q 3 года назад
курс по Nuxt был бы неплох)
@kurlovichdv
@kurlovichdv 3 года назад
Выкинте nuxt на помойку и забудьте как страшный сон. Используйте quasar
@SlavaCh
@SlavaCh 3 года назад
- хочешь присоединиться к моей религии? - что за религия ? - Лавриканство - Лаврик, как никто другой просвещает по всем темам современной веб разработки - я заинтересован! А что надо делать? - ставить в чат плюсики
@ktotut5378
@ktotut5378 3 года назад
Досмотрел ролик до 55-й минуты и понял главное - надо дальше изучать React.))) Такое ощущение, что во Vue одна половина сообщества пытается ставить эксперименты над второй. Не знаю, задавал ли кто-то такой вопрос раньше, но он жизненный (я с ним столкнулся после начала работы с Laravel). Как получить опыт коммерческой разработки? Вот закончил ты курсы, весь такой умный, красивый, но с нулевым портфолио никому не нужен.) А без коммерческой разработки знания бесполезны.
@loginov2030
@loginov2030 3 года назад
Досмотрел ролик до 55-й минуты и понял главное - React больше не нужен)))
@SuperPuperClimp
@SuperPuperClimp 3 года назад
И где брать этот коммерческий опыт, если все ищут спеца с опытом?))
@alexanderverbitsky280
@alexanderverbitsky280 3 года назад
Наблюдал за историей развития Vue. В 1.х версии - шаблоны аля ангуляр, миксины из реакта (которые уже deprecated в реакте); 2.х - скопировали render функции из реакта. 3.х - скопировали хуки из реакта + пытаются присобачить синтаксис из svelte (script setup и ref) - получается вообще какой-то диалект js. Смотришь на все это и офигеваешь. Реакт реально проще для понимания. Ну и не типизированные шаблоны - это 5+.
@m0rtis-nwo
@m0rtis-nwo 3 года назад
У меня было так: один клиент, с которым я уже работал, обратился за веб-приложением для агрегатора предложений по организации торжественных мероприятий. Цена была крайне небольшая, если сравнивать ее с ТЗ. Я согласился, но с одним условием - стэк выбираю я сам. А мне как хотелось изучить vue и его экосистему, его я и выбрал. В итоге я учил его как раз в ходе разработки коммерческого проекта, который и в портфолию добавить не грех:)
@ktotut5378
@ktotut5378 3 года назад
@@m0rtis-nwo, ну, я так и работаю.)
@ruslanmelnychenko3929
@ruslanmelnychenko3929 3 года назад
Как обращаться к $refs в setup?
@andriiyurchuk3299
@andriiyurchuk3299 2 года назад
const названиеРефа = ref(null); Это создаст template ref, тот самый. Просто во vue 3 это теперь одно и то же
@jmmmas
@jmmmas 3 года назад
Зачем учить Vue, если есть Ангуляр и Реакт? :D Зачем нужно было ждать 2020, чтобы начать работать с порталами? С типизацией в верстке как дела?
@SlavaCh
@SlavaCh 3 года назад
Зачем учить Англуяр и Рякт, когда есть Vue, который в разы быстрее учится и проще в использование чем первые два?
@jmmmas
@jmmmas 3 года назад
@@SlavaCh Да это понятно, но правда ли это? Реакт, хуки и create react app сделали вход совсем простым. Но это холиварный вопрос, согласен. Не будем его трогать. Хотел все таки узнать как с типизацией в шаблонах? Она есть или нет?
@SlavaCh
@SlavaCh 3 года назад
@@jmmmas Vue3 адаптирован к работе с TS, отсюда следует, что типизация на месте. Или под «типизацией в шаблонах» что-то иное подразумевается?
@jmmmas
@jmmmas 3 года назад
@@SlavaCh судя по тому, что шаблоны vue - это строки, то типизация в строках отсутствует. Возможно это как то решили, интересно как?
@vitiok78
@vitiok78 3 года назад
Поменяли this на .value )) Шило на мыло... Интересно, есть ли какие-то другие подводные киллер-фичи composition API, которые бы заставили меня отказаться от кода на options API, на который даже смотреть приятней
@MetaDriver33
@MetaDriver33 3 года назад
А не надо отказываться. ОБА апи можно использовать в одном компоненте ОДНОВРЕМЕННО. Я например, так и собираюсь жить. В ролике не раскрыта важная composition-фича - возможность выносить фрагменты сходного функционала в глобальные либы, которые можно затем встраивать в компоненты посредством композиции в функциях setup. См. мой комментарий чуть выше, там немного подробнее.
@vitiok78
@vitiok78 3 года назад
@@MetaDriver33 Вот это уже другое дело. Миксины мне не особо нравятся
Далее
Vue vs React - сравнение фреймворков
2:01:13
Who has won ?? 😀 #shortvideo #lizzyisaeva
00:24
Просмотров 1,2 млн
Как использовать Suspense во Vue
12:35