Vue.js
![]() | |
Оригинальный автор(ы) | Эван Ю |
---|---|
Разработчик(и) | Эван Ю и основная команда [1] |
Первоначальный выпуск | февраль 2014 г [2] |
Стабильная версия | 3.4.31 [3]
/ 28 июня 2024 г |
Репозиторий | |
Написано в | Машинопись |
Платформа | Веб-платформа |
Размер | 33,9 КБ Минимум + gzip [4] |
Тип | библиотека JavaScript |
Лицензия | МОЯ лицензия [5] |
Веб-сайт | вуэйс ![]() |
Vue.js (обычно называемый Vue ; произносится как «представление»). [6] ) — это интерфейсная модель-представление-модель представления с открытым исходным кодом среда JavaScript для создания пользовательских интерфейсов и одностраничных приложений . [12] Он был создан Эваном Ю и поддерживается им и остальными активными членами основной команды. [13]
Обзор
[ редактировать ]Vue.js имеет постепенно адаптируемую архитектуру, ориентированную на декларативный рендеринг и композицию компонентов. Основная библиотека ориентирована только на уровень представления. [6] Расширенные функции, необходимые для сложных приложений, такие как маршрутизация , управление состоянием и инструменты сборки, предлагаются через официально поддерживаемые вспомогательные библиотеки и пакеты. [14]
Vue.js позволяет расширять HTML атрибутами HTML, называемыми директивами. [15] Директивы предоставляют функциональные возможности HTML- приложениям и могут быть встроенными или определяемыми пользователем.
История
[ редактировать ]Vue был создан Эваном Ю после работы в Google с использованием AngularJS в нескольких проектах. Позже он подытожил свой мыслительный процесс: «Я подумал, а что, если бы я мог просто выделить ту часть Angular, которая мне действительно понравилась, и создать что-то действительно легкое». [16] Первая передача исходного кода проекта была датирована июлем 2013 года, а Vue впервые был публично анонсирован в феврале следующего года, в 2014 году. [17] [18]
Названия версий часто происходят от манги и аниме .
Версии
[ редактировать ]Версия | Дата выпуска | Заголовок | Конец ЛТС | Конец жизни |
---|---|---|---|---|
3.4 | 28 декабря 2023 г. | Слэм Данк [19] | ||
3.3 | 11 мая 2023 г. | Руруни Кеншин [20] | ||
3.2 | 5 августа 2021 г. | Квинтэссенция квинтуплетов [21] | ||
3.1 | 7 июня 2021 г. | Плутон [22] | ||
3.0 | 18 сентября 2020 г. | Один кусочек [23] | ||
2.7 | 1 июля 2022 г. | Наруто [24] | 31 декабря 2023 г. | 31 декабря 2023 г. |
2.6 | 4 февраля 2019 г. | Макросс [25] | 18 марта 2022 г. | 18 сентября 2023 г. |
2.5 | 13 октября 2017 г. | Уровень Е [26] | ||
2.4 | 13 июля 2017 г. | Килл-ла-Килл [27] | ||
2.3 | 27 апреля 2017 г. | Необычное приключение ДжоДжо [28] | ||
2.2 | 26 февраля 2017 г. | Начальная буква Д [29] | ||
2.1 | 22 ноября 2016 г. | Охотник х Охотник [30] | ||
2.0 | 30 сентября 2016 г. | Призрак в доспехах [31] | ||
1.0 | 27 октября 2015 г. | Евангелион [32] | ||
0.12 | 12 июня 2015 г. | Жемчуг Дракона [33] | ||
0.11 | 7 ноября 2014 г. | Ковбой Бибоп [34] | ||
0.10 | 23 марта 2014 г. | Бегущий по лезвию [35] | ||
0.9 | 25 февраля 2014 г. | Аниматрикс [36] | ||
0.8 | 27 января 2014 г. | — [37] | первая версия публично анонсирована [17] [18] | |
0.7 | 24 декабря 2013 г. | — [38] | ||
0.6 | 8 декабря 2013 г. | VueJS [39] |
Когда будет выпущен новый основной выпуск, например v3.yz, последний дополнительный выпуск, например 2.xy, станет выпуском LTS на 18 месяцев (исправления ошибок и исправления безопасности), а в течение следующих 18 месяцев будет находиться в режиме обслуживания (только исправления безопасности). [40]
Функции
[ редактировать ]Компоненты
[ редактировать ]Компоненты Vue расширяют базовые элементы HTML для инкапсуляции многократно используемого кода. На высоком уровне компоненты — это пользовательские элементы, которым компилятор Vue присваивает поведение. В Vue компонент — это, по сути, экземпляр Vue с предопределенными параметрами. [41] Фрагмент кода ниже содержит пример компонента Vue. Компонент представляет кнопку и печатает количество нажатий кнопки:
<template>
<div id="tuto">
<button-clicked v-bind:initial-count="0"></button-clicked>
</div>
</template>
<script>
Vue.component('button-clicked', {
props: ['initialCount'],
data: () => ({
count: 0,
}),
template: '<button v-on:click="onClick">Clicked {{ count }} times</button>',
computed: {
countTimesTwo() {
return this.count * 2;
}
},
watch: {
count(newValue, oldValue) {
console.log(`The value of count is changed from ${oldValue} to ${newValue}.`);
}
},
methods: {
onClick() {
this.count += 1;
}
},
mounted() {
this.count = this.initialCount;
}
});
new Vue({
el: '#tuto',
});
</script>
Шаблоны
[ редактировать ]Vue использует синтаксис шаблонов на основе HTML , который позволяет привязывать отображаемый DOM к данным базового экземпляра Vue. Все шаблоны Vue представляют собой действительный HTML-код, который можно анализировать браузерами, соответствующими спецификациям, и анализаторами HTML . Vue компилирует шаблоны в виртуальные функции рендеринга DOM. Виртуальная объектная модель документа (или «DOM») позволяет Vue отображать компоненты в своей памяти перед обновлением браузера. В сочетании с системой реактивности Vue может рассчитать минимальное количество компонентов для повторной визуализации и применить минимальное количество манипуляций с DOM при изменении состояния приложения. [42] Пользователи Vue могут использовать синтаксис шаблона или напрямую писать функции рендеринга с использованием гиперскрипта либо через вызовы функций, либо через JSX . [43] Функции рендеринга позволяют создавать приложения из программных компонентов . [44]
Реактивность
[ редактировать ]Vue имеет систему реактивности, которая использует простые объекты JavaScript и оптимизированный повторный рендеринг. Каждый компонент отслеживает свои реактивные зависимости во время рендеринга, поэтому система точно знает, когда и какие компоненты следует повторно визуализировать. [45]
Переходы
[ редактировать ]Vue предоставляет множество способов применения эффектов перехода при вставке, обновлении или удалении элементов из DOM . Сюда входят инструменты для:
- Автоматически применять классы для CSS- переходов и анимации.
- Интегрируйте сторонние библиотеки анимации CSS, такие как Animate.css.
- Используйте JavaScript для непосредственного управления DOM во время перехватов перехода.
- Интегрируйте сторонние библиотеки анимации JavaScript, такие как Velocity.js.
Когда элемент, завернутый в компонент перехода, вставляется или удаляется, происходит следующее:
- Vue автоматически определит, применены ли к целевому элементу CSS-переходы или анимация. Если это так, классы перехода CSS будут добавляться/удаляться в соответствующее время.
- Если компонент перехода предоставил перехватчики JavaScript, эти перехватчики будут вызываться в соответствующие моменты времени.
- Если переходы/анимации CSS не обнаружены и не предоставлены перехватчики JavaScript, операции DOM для вставки и/или удаления будут выполнены немедленно в следующем кадре. [46] [47]
Маршрутизация
[ редактировать ]Традиционным недостатком одностраничных приложений (SPA) является невозможность совместного использования ссылок на конкретную «подстраницу» внутри конкретной веб-страницы. Поскольку SPA предоставляют своим пользователям только один ответ на основе URL-адреса от сервера (обычно он обслуживает index.html или index.vue), добавление определенных экранов в закладки или обмен ссылками на определенные разделы обычно затруднено, если не невозможно. Чтобы решить эту проблему, многие клиентские маршрутизаторы разделяют свои динамические URL-адреса « хэшбэнгом » (#!), например page.com/#!/ . Однако большинство современных браузеров поддерживают HTML5 маршрутизацию без хэшбэнгов.
Vue предоставляет интерфейс для изменения того, что отображается на странице, на основе текущего URL-пути — независимо от того, как он был изменен (с помощью ссылки по электронной почте, обновления или внутристраничных ссылок). Кроме того, использование внешнего маршрутизатора позволяет намеренно изменять путь браузера, когда определенные события браузера (например, щелчки) происходят на кнопках или ссылках. Сам Vue не поддерживает интерфейсную хешированную маршрутизацию. Но пакет «vue-router» с открытым исходным кодом предоставляет API для обновления URL-адреса приложения, поддерживает кнопку «Назад» (навигация по истории), а также сброс пароля электронной почты или ссылки для проверки электронной почты с параметрами URL-адреса аутентификации. Он поддерживает сопоставление вложенных маршрутов с вложенными компонентами и предлагает детальный контроль переходов. С помощью Vue разработчики уже создают приложения из небольших строительных блоков, создавая более крупные компоненты. При добавлении vue-router компоненты должны быть просто сопоставлены с маршрутами, которым они принадлежат, а родительские/корневые маршруты должны указывать, где должны отображаться дочерние элементы. [48]
<div id="app">
<router-view></router-view>
</div>
...
<script>
...
const User = {
template: '<div>User {{ $route.params.id }}</div>'
};
const router = new VueRouter({
routes: [
{ path: '/user/:id', component: User }
]
});
...
</script>
Код выше:
- Устанавливает внешний маршрут в
websitename.com/user/<id>
. - Который будет отображаться в компоненте User, определенном в (const User...)
- Позволяет компоненту User передавать конкретный идентификатор пользователя, который был введен в URL-адрес с использованием ключа параметров объекта $route:
$route.params.id
. - Этот шаблон (в зависимости от параметров, переданных в маршрутизатор) будет преобразован в
<router-view></router-view>
внутри div#app DOM. - Окончательно сгенерированный HTML для ввода:
websitename.com/user/1
будет:
<div id="app">
<div>
<div>User 1</div>
</div>
</div>
Экосистема
[ редактировать ]Основная библиотека включает в себя инструменты и библиотеки, разработанные основной командой и участниками.
Официальный инструментарий
[ редактировать ]- Devtools — расширение инструментов разработчика браузера для отладки приложений Vue.js.
- Vite — стандартный инструментарий для быстрой разработки Vue.js.
- Vue Loader — загрузчик веб-пакетов, который позволяет писать компоненты Vue в формате, называемом однофайловыми компонентами (SFC).
Официальные библиотеки
[ редактировать ]- Vue Router – Официальный маршрутизатор
- Vuex — централизованное управление состоянием на основе Flux.
- Vue Server Renderer — рендеринг на стороне сервера
- Пиния – Новое простое управление состоянием
См. также
[ редактировать ]- Сравнение веб-фреймворков на основе JavaScript
- Реагировать
- AngularJS
- Угловой
- Квазар Фреймворк
- Веб-фреймворк
- библиотека JavaScript
- Модель–представление–ViewModel
- Nuxt.js
Источники
[ редактировать ] В эту статью включен текст из бесплатного контента . Лицензия MIT License ( заявление о лицензии/разрешение ). Текст взят из Vue.js Guide , Vue.js, .
Ссылки
[ редактировать ]- ^ https://vuejs.org/about/team
- ^ «Первая неделя запуска Vue.js» . Эван Ю. Архивировано из оригинала 5 февраля 2019 года . Проверено 11 марта 2017 г.
- ^ https://github.com/vuejs/core/blob/main/CHANGELOG.md
- ^ "@vue/runtime-dom v3.2.45" . Бандлефобия . Архивировано из оригинала 29 января 2023 года . Проверено 29 января 2023 г.
- ^ "vue/ЛИЦЕНЗИЯ" . Vue.js. Получено 17 апреля 2017 г. - через GitHub.
- ^ Jump up to: а б с "Введение" . Vuejs.org . Архивировано из оригинала 10 февраля 2022 года . Проверено 3 января 2020 г.
- ^ Макрэ, Каллум (2018). Vue.js: Готово к работе: создание доступных и производительных веб-приложений . О'Рейли Медиа . ISBN 978-1-4919-9721-5 . Архивировано из оригинала 30 мая 2024 года . Проверено 9 августа 2019 г.
- ^ Нельсон, Бретт (2018). Знакомство с Vue.js: научитесь создавать одностраничные приложения на Vue с нуля . Апресс . ISBN 978-1-4842-3781-6 . Архивировано из оригинала 30 мая 2024 года . Проверено 9 августа 2019 г.
- ^ Йербург, Эдд (2019). Тестирование приложений Vue.js. Публикации Мэннинга . ISBN 978-1-61729-524-9 . Архивировано из оригинала 30 мая 2024 года . Проверено 9 августа 2019 г.
- ^ Фриман, Адам (2018). Про Vue.js 2 . Апресс . ISBN 978-1-4842-3805-9 . Архивировано из оригинала 30 мая 2024 года . Проверено 9 августа 2019 г.
- ^ Франклин, Джек; Ванойке, Майкл; Бушефра, Ахмед; Сайлас, Кингсли; Кэмпбелл, Чад А.; Жак, Нильсон; Омоле, Олайинка; Малдерс, Майкл (2019). Работаем с Vue.js. СайтПоинт . ISBN 978-1-4920-7144-0 . [ постоянная мертвая ссылка ]
- ^ [7] [8] [9] [10] [11] [6]
- ^ «Знакомство с командой» . Vuejs.org . Архивировано из оригинала 7 февраля 2022 года . Проверено 23 сентября 2019 г.
- ^ «Эван создает Vue.js» . Патреон . Архивировано из оригинала 3 марта 2019 года . Проверено 11 марта 2017 г.
- ^ «Что такое Vue.js» . W3Школы . Архивировано из оригинала 22 января 2020 года . Проверено 21 января 2020 г.
- ^ «Эван Ю» . Между проводами . 3 ноября 2016 года. Архивировано из оригинала 3 июня 2017 года . Проверено 26 августа 2017 г.
- ^ Jump up to: а б «Vue.js: JavaScript MVVM стал проще» . Хакерские новости . 3 февраля 2014 года. Архивировано из оригинала 29 января 2023 года . Проверено 29 января 2023 г.
- ^ Jump up to: а б «Первая неделя запуска Vue.js» . Эван Ю. 11 февраля 2014. Архивировано из оригинала 12 апреля 2017 года . Проверено 29 января 2023 г.
- ^ «Анонс Vue 3.4» . Vue.js. 28 декабря 2023 года. Архивировано из оригинала 24 марта 2024 года . Проверено 29 марта 2024 г.
- ^ «Обновление раунда v3.3.0» . Vue.js. 11 мая 2023 года. Архивировано из оригинала 13 декабря . Получено 12 мая 2023 г. - через GitHub.
- ^ «Квинтэссенционные квинтуплеты v3.2.0» . Vue.js. 5 августа 2021 года. Архивировано из оригинала 10 августа 2021 года . Получено 10 августа 2021 г. - через GitHub.
- ^ «v3.1.0 Плутон» . Vue.js. 7 июня 2021 года. Архивировано из оригинала 18 июля 2021 года . Получено 18 июля 2021 г. - через GitHub.
- ^ «v3.0.0 One Piece» . Vue.js. 18 сентября 2020 года. Архивировано из оригинала 19 сентября 2020 года . Получено 23 сентября 2020 г. - через GitHub.
- ^ «v2.7.0 Наруто» . Vue.js. 1 июля 2022 года. Архивировано из оригинала 1 июля 2022 года . Получено 1 июля 2022 г. - через GitHub.
- ^ «v2.6.0 Макросс» . Vue.js. 4 февраля 2019 года. Архивировано из оригинала 11 ноября 2020 года . Получено 23 сентября 2020 г. - через GitHub.
- ^ «v2.5.0 Уровень E» . Vue.js. 13 октября 2017 года. Архивировано из оригинала 18 сентября 2020 года . Получено 23 сентября 2020 г. - через GitHub.
- ^ «v2.4.0 Килл-ла-Килл» . Vue.js. 13 июля 2017 года. Архивировано из оригинала 9 ноября 2020 года . Получено 23 сентября 2020 г. - через GitHub.
- ^ «v2.3.0 Невероятные приключения ДжоДжо» . Vue.js. 27 апреля 2017 года. Архивировано из оригинала 11 ноября 2020 года . Получено 23 сентября 2020 г. - через GitHub.
- ^ «v2.2.0 Начальная D» . Vue.js. 26 февраля 2017 года. Архивировано из оригинала 13 апреля 2021 года . Получено 23 сентября 2020 г. - через GitHub.
- ^ «v2.1.0 Охотник X Охотник» . Vue.js. 22 ноября 2016 г. Архивировано из оригинала 8 ноября 2020 г. . Получено 23 сентября 2020 г. - через GitHub.
- ^ «v2.0.0 Призрак в доспехах» . Vue.js. 30 сентября 2016. Архивировано из оригинала 27 октября 2020 года . Получено 23 сентября 2020 г. - через GitHub.
- ^ «1.0.0 Евангелион» . Vue.js. 27 октября 2015 года. Архивировано из оригинала 13 апреля 2021 года . Получено 23 сентября 2020 г. - через GitHub.
- ^ «0.12.0: Жемчуг Дракона» . Vue.js. 12 июня 2015 года. Архивировано из оригинала 13 апреля 2021 года . Получено 23 сентября 2020 г. - через GitHub.
- ^ «v0.11.0: Ковбой Бибоп» . Vue.js. 7 ноября 2014 г. Архивировано из оригинала 13 апреля 2021 г. Получено 23 сентября 2020 г. - через GitHub.
- ^ «v0.10.0: Бегущий по лезвию» . Vue.js. 23 марта 2014 года. Архивировано из оригинала 13 апреля 2021 года . Получено 23 сентября 2020 г. - через GitHub.
- ^ «v0.9.0: Аниматрикс» . Vue.js. 25 февраля 2014 года. Архивировано из оригинала 13 апреля 2021 года . Получено 23 сентября 2020 г. - через GitHub.
- ^ "v0.8.0" . Vue.js. 27 января 2014 года. Архивировано из оригинала 13 апреля 2021 года . Получено 23 сентября 2020 г. - через GitHub.
- ^ "v0.7.0" . Vue.js. 24 декабря 2013. Архивировано из оригинала 13 апреля 2021 года . Получено 23 сентября 2020 г. - через GitHub.
- ^ «0.6.0: VueJS» . Vue.js. 8 декабря 2013 года. Архивировано из оригинала 13 апреля 2021 года . Получено 23 сентября 2020 г. - через GitHub.
- ^ «Дорожная карта Vue» . Vue.js. 6 ноября 2022 года. Архивировано из оригинала 10 декабря 2021 года . Получено 10 декабря 2021 г. - через GitHub.
- ^ «Компоненты» . Vuejs.org . Архивировано из оригинала 10 февраля 2022 года . Проверено 11 марта 2017 г.
- ^ Джордан, Джон. «Шаблон администратора Vue» . Проверено 16 июля 2022 г.
- ^ «Синтаксис шаблона» . Vuejs.org . Архивировано из оригинала 10 февраля 2022 года . Проверено 11 марта 2017 г.
- ^ «Vue 2.0 уже здесь!» . Точка зрения . 30 сентября 2016. Архивировано из оригинала 12 марта 2017 года . Проверено 11 марта 2017 г.
- ^ «Реактивность в глубине» . Vuejs.org . Архивировано из оригинала 10 февраля 2022 года . Проверено 11 марта 2017 г.
- ^ «Эффекты перехода» . Vuejs.org . Архивировано из оригинала 13 декабря 2023 года . Проверено 11 марта 2017 г.
- ^ «Переходное государство» . Vuejs.org . Архивировано из оригинала 10 февраля 2022 года . Проверено 11 марта 2017 г.
- ^ «Маршрутизация» . Vuejs.org . Архивировано из оригинала 10 февраля 2022 года . Проверено 11 марта 2017 г.
- ^ Ты, Эван. «Вложенная маршрутизация Vue (2)» . Домашняя страница Vue (подстраница) . Архивировано из оригинала 8 мая 2017 года . Проверено 10 мая 2017 г.