В этом видео / статье мы познакомимся нововведениями во vue.js 3, а также разберемся с composition api и сравним его с options api. По окончании мы полностью перепреем текущее приложение на новый апи используя вью 3 :)
И самое главное - вы выберете для себя, что удобнее новый апи или старый и привычный options api.
Если вы хотите глубже погрузиться в Composition API то вот ссылка на полный курс по вью-3 там более сотни видеоуроков, домашки с подробным ревью и еще много всего интересного, а еще курс по вью-2 в подарок.
Или посмотрите хотя бы «демо» из полного курса по вью-3 тк там есть весь базис вьюшки – от инициализации вью до жизненных циклов (и плагины, которые помогут в работе). Ибо, не зная даже базиса будет очень тяжело. Демо-доступ ни к чему не обязывает и полностью бесплатный получить его можно на промо-странице полного курса, а потом уже возвращайтесь в этот курс, так будет куда легче 👌
Если использовать обычные константы то вы не увидите изменений, если будете пытаться их изменить, только повторный вызов этих констант покажет вам, что они изменились (так работает нативный js)
Чтобы на Composition API сделать значения реактивными вам понадобятся refs
(рефы).
Первое, что нужно сделать, это их импортировать рефы:
import { ref } from 'vue'
Далее можно описать переменную:
export default {
setup() {
const items = ref([])
}
}
В каком случае использовать ref()
:
Для работы с объектами нужно использовать reactive
. Для работы с массивами можно использовать ref, но также можно использовать и reactive.
Когда мы возвращаем простой объект JavaScript из функции данных компонента, Vue помещает этот объект в прокси (открывает новое окно) с обработчиками для get и set.
Прокси были введены в ES6 и позволяют Vue 3 избежать некоторых ограничений реактивности, которые существовали в более ранних версиях Vue.
Прокси - это объект, который охватывает другой объект и позволяет вам перехватывать любые взаимодействия с внутри объекта. (Чего нельзя было сделать на вью 2, да и на реакте тоже нельзя)
Но у прокси есть один минус - его не поддерживает IE 11, н число плюсов куда больше, например, можно полностью отказаться от VUEX тк получить то или иное свойство вы можете получить из любого компонента.
Почитать больше вы можете тут
Именно поэтому нужно дописывать value
при обращение к переменным которые обернуты в прокси (используются реактивно)
Методы можно писать любым способом, можно использовать стрелки:
const handleSubmit = item => items.value.push(item)
Или писать функции:
function handleSubmit(item) {
return items.value.push(item)
}
Я предпочитаю стрелки потому что:
Несмотря на то, что они анонимны, мне также нравится использовать их с такими методами, как map и reduce, потому что я думаю, что это делает мой код более читабельным. Для меня плюсы перевешивают минусы. Стрелочные функции лучше всего подходят для всего, что требует привязки к контексту, а не к самой функции.
К рефам нужно дописать компьютед:
import { ref, computed } from 'vue'
А исходный код будет выглядеть так:
const sorteredItems = computed(() => {
return items.sort((a, b) => {
if (a[sortBy.value] > b[sortBy.value]) return -1
if (a[sortBy.value] < b[sortBy.value]) return 1
})
})
Где items
это исходный массив данных. А sortBy
это переменная, к которой привязано значение по которому будет происходить сортировка.
Обратите внимание: на
sortBy.value
здесь используется value тк значениеsortBy
является реактивным (отсылка на прокси)
На этом все
Весь исходный код доступен на гитахбе
Подписывайтесь на группу вк - клик тут там я буду публиковать новости и то, что мне интересно в сфере разработки :)
В ближайшее время будет очень много классных видео! Подписывайтесь на ютуб канал чтобы быть в курсе, а еще поставьте класс на это видео, это поможет мне реанимировать канал =)
Если вам нравятся материалы на сайте, вы можете помочь. Средства пойдут на оплату сервера, на котором функционирует сайт, а также на продвижение ресурса и корм коту!
Записавшись на курс по «Vue.js 3 с нуля до результата», вы получаете второй курс по «Vue.js 2» бесплатно и навсегда!
Суммарно вы получаете более 300 видеоуроков, доступ вебинарам, десять домашних зданий, два сертификата, 11 проектов в портфолио и доступ к общей группе с вакансиями по трудоустройству!