Interested Article - Vue.js

Vue.js (также Vue ; / v j / ) — JavaScript - фреймворк с открытым исходным кодом для создания пользовательских интерфейсов . Легко интегрируется в проекты с использованием других JavaScript-библиотек . Может функционировать как веб-фреймворк для разработки одностраничных приложений в реактивном стиле.

На данный момент поддерживается создателем Эваном Ю и остальными активными членами основной команды из различных компаний, таких как , , Baidu , .

Опрос разработчиков о JavaScript, проведенный в 2022 году, показал, что Vue удовлетворяет 77,4 % сообщества . Vue версии 2 имеет 204 тысячи звезд на GitHub, версия 3 — 38 тысяч . Является третьим по величине проектом в истории GitHub [ источник не указан 1027 дней ] .

История

В 2013 году сотрудник Google Эван Ю ( Evan You ), работая над одним из проектов, пришёл к выводу, что не существует готовых решений для быстрого прототипирования сложных пользовательских интерфейсов веб-приложений: React тогда был на ранней стадии разработки, основными инструментами были такие сложные фреймворки, как AngularJS или ориентированный на MVC -архитектуру Backbone.js , не отличавшиеся простотой и ориентированные на разработку больших приложений. Для преодоления этого пробела Ю начал разработку Vue.js, которая, сохраняя простоту, оказалась пригодна не только для прототипирования, но и для полноценной разработки .

В октябре 2015 года была выпущена версия 1.0 библиотеки, в сентябре 2016 года — версия 2.0.

Начиная с версии 2.0 он поддерживает также рендеринг на стороне сервера, он же SSR (Server-Side Rendering) .

18 cентября 2020 года была выпущена версия Vue.js 3.0.0 «One Piece», по словам разработчиков «обеспечивает улучшенную производительность, меньший размер пакетов, лучшую интеграцию с TypeScript, новые API для решения крупномасштабных задач и прочную основу для будущих итераций фреймворка в долгосрочной перспективе» .

Релиз 3.0 вобрал в себя более 2 лет усилий по разработке, включая более 30 RFC, более 2600 коммитов, 628 запросов от 99 разработчиков, плюс огромный объём работы над разработкой и документацией. Весь код был переписан на более эффективный TypeScript, что даёт преимущества в гибкой разработке.

Также представлен новый набор API Composition .

Версии

Version Release date Title
3.2 5 августа 2021
3.1 7 июня 2021
3.0 18 сентября 2020 One Piece
2.7 1 июля 2022 Naruto
2.6 4 февраля 2019 Macross
2.5 13 октября 2017 Level E
2.4 13 июля 2017 Kill la Kill
2.3 27 апреля 2017 JoJo's Bizarre Adventure
2.2 26 февраля 2017 Initial D
2.1 22 ноября 2016 Hunter X Hunter
2.0 30 сентября 2016 Ghost in the Shell
1.0 27 октября 2015 Evangelion
0.12 12 июня 2015 Dragon Ball
0.11 7 ноября 2014 Cowboy Bebop
0.10 23 марта 2014 Blade Runner
0.9 25 февраля 2014
0.8 27 января 2014 н/д
0.7 24 декабря 2013 н/д
0.6 8 декабря 2013 VueJS

Концепция

Разработчики называют Vue.js прогрессивным и постепенно адаптируемым по сравнению с другими веб-фреймворками .

Это позволяет разработчику настроить структуру приложения в соответствии с собственными требованиями. Разработчики считают Vue.js более простым в освоении, чем AngularJS , поскольку API построен намного проще в освоении. В Vue.js можно использовать только знания JavaScript и HTML. Возможно применение Typescript. У Vue.js есть собственная официальная достаточно богатая документация на многих языках, выложенная на vuejs.org , которая может послужить примером в объяснении проектирования и разработки в браузере. В Vue.js реализуется шаблон MVVM, Vue.js предлагает возможность привязки данных на Javascript, так что вывод и ввод данных сопрягаются непосредственно с источником данных. Таким образом, режим ручного определения данных (например, через jQuery) из HTML - DOM не нужен. При этом нет необходимости в никаких дополнительных аннотациях, как в Knockout.js , объявленные в Vue-Element обычные переменные JavaScript включаются в качестве реактивных элементов.

Реактивность

Реактивность означает, что представление в модели MVC изменяется по мере изменения модели. В Vue разработчики просто привязывают представление к соответствующей модели, и Vue автоматически наблюдает за изменениями в модели и перерисовывает представление. Эта функция делает управление состоянием Vue довольно простым и интуитивно понятным.

Эффекты перехода

Vue предоставляет различные способы применения эффектов перехода при вставке, обновлении или удалении DOM. Включает следующие инструменты:

  • Автоматически применять CSS классы при переходах и анимации
  • Вы можете работать со сторонними библиотеками анимации CSS, такими как Animate.css.
  • Используйте JavaScript функции для перехвата перехода, чтобы напрямую управлять DOM
  • Может использоваться в сочетании со сторонними библиотеками анимации JavaScript, такими как Velocity.js.

Структура

Пример приложений Vue

Любое приложение с Vue.js имеет (по крайней мере) один центральный экземпляр. Для каждого HTML-файла возможно любое количество экземпляров. Экземпляр привязывается к HTML-узлу с помощью свойства el (определяемого здесь с помощью CSS -селектора «body»).

Файл приложения сохраняется как *. js .

var vm = new Vue({
  el: "body",
  data: {
    message: "Привет Мир!",
    items: [
      "это",
      "и",
      "есть",
      "Array/Массив"
    ]
  }
});

Компоненты/Components

Функциональность экземпляров может быть расширена с помощью компонентов , хранятся в древовидном виде. Компоненты отличаются от экземпляров тем, что они не привязаны к узлам HTML, а содержат собственный шаблон HTML.

 // Определение компонента и глобальная регистрация

Vue.component('my-component', {

  template: '<div><div> это новый компонент < / div>< / div>'

})

// Создание экземпляра Vue

new Vue({

  el: '#example '

})

Шаблон HTML для Компонента

<!-- HTML-Узел -->
<div id="example">
  <my-component></my-component>
</div>

<!--Использования c DOM-->
<div id="example">
  <div>Это новый компонент</div>
</div>

Double Curly Syntax/Двойные фигурные скобки

Используя двойные фигурные скобки (синтаксис double-curly), популярные в фреймворках JavaScript , элементы JavaScript могут быть вставлены в HTML - DOM , при этом элемент связывается в источнике данных из экземпляра Vue. Связывание данных (eng. Databinding) возможен в обоих направлениях («Two way databinding») , что позволяет изменять данные пользователем. директива model обеспечивает Databinding с элементами Input.

Директивы v-model не более, чем синтаксический сахар.

Директивы/Directive.

HTML -атрибуты позволяют выполнять такие действия, как итерация цикла по массиву , включение HTML -узлов в DOM только по желанию (v-if) , скрытие HTML -узлов (v-show) , перехват событий (v-on) или привязка атрибутов к переменным (v-bind) . Директивы Vue.js узнаваемы по префиксу v - . также можно применять фильтры для изменения вывода элементов JavaScript . собственные директивы и фильтры могут быть определены в виде функций JavaScript.

<ul>
 <li v-for="item in items">
    {{ item }} <!-- Вывод значения -->
    {{ item | lowercase }} <!-- Вывод значения строчными буквами -->
 </li>

</ul>

Жизненный цикл компонентов

Все экземпляры и компоненты проходят жизненный цикл , он состоит из нескольких этапов, которые можно использовать для вызова собственных функций. В частности, этап mounted используется очень часто, поскольку он вызывается сразу после того, как компонент был включен в DOM . Используя функцию Vue $next , можно определить код, который не вызывается до тех пор, пока компонент не будет готов.

new Vue({
  mounted: function () {
//вызывается, когда компонент будет видно, например,через v-if vue или маршрутизатор.
    console.log('Этот компонент был интегрирован в DOM на'+Date.now());
    this.$next(() => console.log('Теперь компонент полностью готов.'))
  },
  destroyed: function() {
    //Вызывается*, когда компонент удаляется из DOM.
    removeListener(XY);
  }
})

Модульность

Vue.js может быть дополнен расширениями, они могут содержать Mixins , директивы, фильтры, компоненты и объекты. В качестве официальных расширений предлагаются Vuex , менеджер состояний, подключенный к Redux , так и маршрутизатор Vue , компонентный маршрутизатор. В разделе awesome-Vue поддерживается текущая коллекция расширений. Например, существует расширение для выполнения HTTP-запросов . однако эта была создана как официальная библиотека из Vue.js-Portfolio .

Однофайловые компоненты

Чтобы лучше адаптироваться к большим проектам, которые удобнее писать используя модульность , Vue допускает создание и сохранение компоненты в отдельных файлах с расширением .vue , называемых также sfc (Single File Component), вместо использования Vue.component для регистрации компонентов. Внутри таких модульных файлов отдельные компоненты HTML, CSS и JavaScript организуются в блоки.

Разработчики могут использовать инструменты сборки Webpack или Browserify, как для однофайловых, так и для упаковки компонентов.

<template>
    <p>{{ greeting }} Мир!</p>
</template>
<script>
    module.exports = {
        data: function () {

            return {
                greeting: 'Привет'
            }
        }
    }
</script>
<style scoped>
    p {
        font-size: 2em;
        text-align: center;
    }
</style>

Основные библиотеки и инструменты

  • vue-router — официальный маршрутизатор для Vue.js
  • vuex — Централизованное управление состоянием на основе Flux для Vue.js
  • vue-loader — загрузчик веб-пакетов, который позволяет писать компоненты Vue в формате, называемом однофайловыми компонентами (SFC/ Vue Single-File Component).
  • Vue Server Renderer — рендеринг на стороне сервера для Vue.js
  • vue-cli — стандартный инструментарий для быстрой разработки на Vue.js

Версии выпусков

Vue.js существует в виде развивающейся версии vue-nuxt, и промышленной (production) или стабильной версии. Версия для разработки позволяет выводить информацию и предупреждения, когда включен режим отладки. Версия, предназначенная для production использования, не поддерживает этот режим.

Для версии разработки есть расширение для Google - Chrome и Mozilla Firefox , чтобы облегчить отладку приложения.

См. также

Примечания

  1. — 2024.
  2. — 2006.
  3. . Simplified JavaScript Jargon . Дата обращения: 10 февраля 2017. 11 февраля 2017 года.
  4. (англ.) . vuejs.org . Дата обращения: 20 сентября 2020. 15 января 2022 года.
  5. . web.archive.org . Дата обращения: 14 июня 2023. Архивировано 9 июня 2023 года.
  6. (англ.) . bestofjs.org . Дата обращения: 14 июня 2023. 13 июня 2022 года.
  7. , Vue.js history, p. 10.
  8. (англ.) . GitHub . Дата обращения: 5 марта 2022. 17 апреля 2021 года.
  9. . Vue.js News (англ.) . 2020-09-18. из оригинала 24 июля 2021 . Дата обращения: 5 марта 2022 .
  10. (англ.) . v3.Vue.js.org . Дата обращения: 5 марта 2022. 9 февраля 2022 года.
  11. (англ.) . GitHub (5 августа 2021). Дата обращения: 10 августа 2021. 10 августа 2021 года.
  12. (англ.) . GitHub (7 июня 2021). Дата обращения: 18 июля 2021. 18 июля 2021 года.
  13. (англ.) . GitHub (18 сентября 2020). Дата обращения: 23 сентября 2020. 19 сентября 2020 года.
  14. (англ.) . GitHub (1 июля 2022). Дата обращения: 5 января 2023. 1 июля 2022 года.
  15. (англ.) . GitHub (4 февраля 2019). Дата обращения: 23 сентября 2020. 11 ноября 2020 года.
  16. (англ.) . GitHub (13 октября 2017). Дата обращения: 23 сентября 2020. 18 сентября 2020 года.
  17. (англ.) . GitHub (13 июля 2017). Дата обращения: 23 сентября 2020. 9 ноября 2020 года.
  18. (англ.) . GitHub (27 апреля 2017). Дата обращения: 23 сентября 2020. 11 ноября 2020 года.
  19. (англ.) . GitHub (26 февраля 2017). Дата обращения: 23 сентября 2020. 13 апреля 2021 года.
  20. (англ.) . GitHub (22 ноября 2016). Дата обращения: 23 сентября 2020. 8 ноября 2020 года.
  21. (англ.) . GitHub (30 сентября 2016). Дата обращения: 23 сентября 2020. 27 октября 2020 года.
  22. (англ.) . GitHub (27 октября 2015). Дата обращения: 23 сентября 2020. 13 апреля 2021 года.
  23. (англ.) . GitHub (12 июня 2015). Дата обращения: 23 сентября 2020. 13 апреля 2021 года.
  24. (англ.) . GitHub (7 ноября 2014). Дата обращения: 23 сентября 2020. 13 апреля 2021 года.
  25. (англ.) . GitHub (23 марта 2014). Дата обращения: 23 сентября 2020. 13 апреля 2021 года.
  26. (англ.) . GitHub (25 февраля 2014). Дата обращения: 23 сентября 2020. 13 апреля 2021 года.
  27. (англ.) . GitHub (27 января 2014). Дата обращения: 23 сентября 2020. 13 апреля 2021 года.
  28. (англ.) . GitHub (24 декабря 2013). Дата обращения: 23 сентября 2020. 13 апреля 2021 года.
  29. (англ.) . GitHub (8 декабря 2013). Дата обращения: 23 сентября 2020. 13 апреля 2021 года.
  30. . Дата обращения: 19 сентября 2020. 9 марта 2019 года.
  31. (англ.) . vuejs.org (19 сентября 2017). Дата обращения: 19 сентября 2020. 6 мая 2021 года.
  32. (англ.) . vuejs.org . Дата обращения: 19 сентября 2020. 4 ноября 2021 года.
  33. (англ.) . vuejs.org . Дата обращения: 19 сентября 2020. 6 октября 2020 года.
  34. (2016). Дата обращения: 19 сентября 2020. 13 августа 2020 года.
  35. (2016). Дата обращения: 19 сентября 2020. 16 сентября 2020 года.
  36. (июнь 2016). Дата обращения: 19 сентября 2020. 19 сентября 2020 года.
  37. (англ.) . vuejs.org . Дата обращения: 19 сентября 2020. 19 сентября 2020 года.
  38. . — 2018. 16 сентября 2020 года.
  39. (англ.) . redux.js.org . Дата обращения: 19 сентября 2020. 20 сентября 2020 года.
  40. . — 2020-09-19. 18 сентября 2020 года.
  41. . 19 сентября 2020 года.
  42. Evan You. (англ.) . Medium (ноябрь 2016). Дата обращения: 19 сентября 2020. 8 ноября 2020 года.
  43. . ru.vuejs.org . Дата обращения: 20 сентября 2020. (недоступная ссылка)
  44. (англ.) . router.vuejs.org . Дата обращения: 20 сентября 2020. 18 сентября 2020 года.
  45. (англ.) . vue-loader.vuejs.org . Дата обращения: 19 сентября 2020. 16 сентября 2020 года.
  46. . ssr.vuejs.org . Дата обращения: 20 сентября 2020. 18 сентября 2020 года.
  47. . — 2020-09-19. 16 сентября 2020 года.
  48. (англ.) . vuejs.org . Дата обращения: 19 сентября 2020. 20 сентября 2020 года.
  49. (англ.) . vuejs.org . Дата обращения: 19 сентября 2020. 19 сентября 2020 года.
  50. . chrome.google.com . Дата обращения: 19 сентября 2020. 18 сентября 2020 года.
  51. (амер. англ.) . addons.mozilla.org . Дата обращения: 19 сентября 2020. 12 сентября 2020 года.
  52. (англ.) . 19 сентября 2020 года.

Литература

  • Callum Macrae. Vue.js: Up and Running. — O’Reilly, 2017. — 219 с. — ISBN 9781491997246 .
  • Olga Filipova. . — Packt Publishing Ltd, 2016. — 334 с. — ISBN 9781786461131 .
  • Alex Kyriakidis, Kostas Maniatis. . — Packt Publishing Ltd, 2016. — 230 с. — ISBN 9781787125209 .
  • Klint Finley. // Wired. — 2018. — 23 августа. — ISSN .

Ссылки

  • — официальный сайт Vue.js
  • (англ.)
  • - современный Open Source Vue 3 фреймворк, 50+ настраиваемых компонентов.
Источник —

Same as Vue.js