Как некоторые из вас могут знать, Vue 3 в настоящее время находится в стадии бета-тестирования. В нем есть некоторые новые многообещающие функции, о которых я собираюсь рассказать здесь. Если вы хотите быть впереди всех и опробовать Vue 3, ознакомьтесь с этой статьей из Грегга Поллака, которая поможет вам начать работу.
Вот что нового в Vue 3
Новый способ создавать и монтировать свои приложения
Vue 3 меняет способ работы глобальных API. Это означает, что глобальные API-интерфейсы, влияющие на поведение Vue, теперь перемещаются в экземпляры приложений с помощью нового метода createApp (). Глобальные API, не влияющие на Vue, называются экспортом.
// ====== BEFORE ====== import Vue from 'vue' import App from './App.vue' Vue.config.productionTip = false Vue.use(/*...*/) new Vue({ render: h => h(App), }).$mount('#app') // ====== AFTER ====== import { createApp } from 'vue' import App from './App.vue' const app = createApp() app.use(/*...*/) app.mount('#app')
Composition API
Composition API - это новая функция, которая полностью возьмет на себя компоненты Vue 2. Это способ более эффективно писать и понимать компоненты.
Здесь цель состоит в том, чтобы сделать повторно используемые компоненты более удобочитаемыми и удобными в обслуживании за счет организации кода в группы вместо его разделения.
Итак, как видите, API композиции делает вещи намного более понятными и удобочитаемыми. Для более подробного объяснения, прочтите полный текст сообщения здесь.
Саспенс
Приостановка позволяет установить шаблон по умолчанию и резервный шаблон.
<template> <div> <Suspense> <template #default> // Code goes here <Articles /> </template> <template #fallback> // This executes if #default doesn't load <Loading /> </template> </Suspense> </div> </template>
Поэтому вместо использования v-if, чтобы узнать, загружены ли данные или нет, Suspense сделает все это за вас.
Порталы
В Vue 3 порталы позволят вам нацелиться на рендеринг целых деревьев DOM. Это делается с помощью ‹Portal /›.
<Portal target="#target-location"> <p>Hello</p> </Portal> // Gets rendered in <div id="target-location"></div>
Эти порталы значительно упростят работу с большим деревом компонентов.
Спасибо за прочтение
Будьте в безопасности
Херби