Vue.js (звычайна пазначаецца як Vue; вымаўляецца як «в’ю»[4]) — гэта JavaScript-бібліятэка з адкрытым зыходным кодам для стварэння карыстальніцкіх інтэрфейсаў і аднастаронкавых вэб-праграм (англ.: single-page application, SPA)[10]. Яна была створана Эванам Ю і падтрымліваецца ім і камандай[11].
Агляд
Vue.js мае інкрыментальна адаптаваную архітэктуру, арыентаваную на дэкларатыўны рэндэрынг і кампаноўку кампанентаў. Асноўная бібліятэка арыентавана толькі на ўзровень прадстаўлення[4]. Дадатковыя магчымасці, неабходныя для складаных вэб-праграм, такія як маршрутызацыя, кіраванне станамі і інструменты зборкі, даступныя праз афіцыйныя бібліятэкі і пакеты[12].
Vue.js дазваляе пашыраць HTML пры дапамозе атрыбутаў HTML, якія называюцца дырэктывамі[13]. Дырэктывы забяспечваюць функцыянальнасць HTML-праграм і могуць быць як убудаванымі, так і вызначанымі карыстальнікам.
Гісторыя
Vue быў створаны Эванам Ю пасля працы ў Google, дзе ён выкарыстоўваў AngularJS у некалькіх праектах. Пазней ён падсумаваў свае думкі: «Я падумаў, што змагу ўзяць тую частку Angular, якая мне падабалася, і стварыць нешта сапраўды лёгкае»[14]. Першы камміт (eng. commit) зыходнага кода праекта датаваны ліпенем 2013 года, а першы публічны анонс Vue адбыўся ў лютым наступнага, 2014 года[15][16].
Кампаненты Vue пашыраюць базавыя элементы HTML для інкапсуляцыі прыгоднага для шматразовага выкарыстання кода. На высокім узроўні кампаненты — гэта прыстасаваныя элементы, да якіх кампілятар Vue прымацоўвае паводзіны. У Vue кампанент — гэта, у сутнасці, экзэмпляр Vue з загадзя вызначанымі параметрамі[37]. Прыведзены ніжэй фрагмент кода змяшчае прыклад кампанента Vue. Кампанент паказвае кнопку і выводзіць колькасць націскаў на яе:
<template><divid="tuto"><button-clickedv-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 <nowiki>{{ count }}</nowiki> times</button>',computed:{countTimesTwo(){returnthis.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;}});newVue({el:'#tuto',});</script>
Пераходы
Vue дае мноства спосабаў ужывання эфектаў пераходу пры ўстаўцы, абнаўленні або выдаленні элементаў з DOM. Існуюць наступныя інструменты:
Аўтаматычнае прымяненне класаў для CSS-пераходаў і анімацыі
Інтэграцыя іншых бібліятэк CSS-анімацыі, такіх як Animate.css
Выкарыстанне JavaScript для прамога маніпулявання DOM падчас пераходаў
Інтэграцыя іншых бібліятэк анімацыі JavaScript, напрыклад Velocity.js
Калі элемент, абгорнуты ў кампанент пераходу, устаўляецца ці выдаляецца, адбываецца наступнае:
Vue аўтаматычна вызначае, ці прымяняюцца да мэтавага элемента CSS-пераходы або анімацыя. Калі так, то класы CSS-пераходаў будуць дадавацца/выдаляцца ў адпаведныя моманты часу.
Калі кампанент пераходу змяшчае JavaScript-хукі, то гэтыя хукі будуць выклікацца ў адпаведныя моманты часу.
Калі CSS-пераходы/анімацыя не выяўлены і хукі JavaScript не прадстаўлены, то аперацыі DOM па ўстаўцы і/або выдаленні будуць выкананы адразу на наступным фрэйме[38][39].