Vue.js
Vue.js (звычайна пазначаецца як Vue; вымаўляецца як «в’ю»[4]) — гэта JavaScript-бібліятэка з адкрытым зыходным кодам для стварэння карыстальніцкіх інтэрфейсаў і аднастаронкавых вэб-праграм (англ.: single-page application, SPA)[10]. Яна была створана Эванам Ю і падтрымліваецца ім і камандай[11].
Vue.js | |
---|---|
Тып | бібліятэка, JavaScript-фрэймворк[d], Вэб-фрэймворк і бібліятэка JavaScript[d] |
Аўтар | Эван Ю |
Распрацоўшчык | GitHub |
Напісана на | JavaScript[3] і TypeScript |
Аперацыйная сістэма | кросплатформавае праграмнае забеспячэнне |
Мовы інтэрфейсу | JavaScript |
Першы выпуск | люты 2014[1] |
Апошняя версія |
|
Ліцэнзія | MIT License |
Сайт | vuejs.org |
Медыяфайлы на Вікісховішчы |
Агляд
правіцьVue.js мае інкрыментальна адаптаваную архітэктуру, арыентаваную на дэкларатыўны рэндэрынг і кампаноўку кампанентаў. Асноўная бібліятэка арыентавана толькі на ўзровень прадстаўлення[4]. Дадатковыя магчымасці, неабходныя для складаных вэб-праграм, такія як маршрутызацыя, кіраванне станамі і інструменты зборкі, даступныя праз афіцыйныя бібліятэкі і пакеты[12].
Vue.js дазваляе пашыраць HTML пры дапамозе атрыбутаў HTML, якія называюцца дырэктывамі[13]. Дырэктывы забяспечваюць функцыянальнасць HTML-праграм і могуць быць як убудаванымі, так і вызначанымі карыстальнікам.
Гісторыя
правіцьVue быў створаны Эванам Ю пасля працы ў Google, дзе ён выкарыстоўваў AngularJS у некалькіх праектах. Пазней ён падсумаваў свае думкі: «Я падумаў, што змагу ўзяць тую частку Angular, якая мне падабалася, і стварыць нешта сапраўды лёгкае»[14]. Першы камміт (eng. commit) зыходнага кода праекта датаваны ліпенем 2013 года, а першы публічны анонс Vue адбыўся ў лютым наступнага, 2014 года[15][16].
Назвы версій часта паходзяць з мангі і анімэ.
Версіі
правіцьВерсія | Дата выпуску | Назва | Канец LTS | Канец падтрымкі |
---|---|---|---|---|
3.3 | 2023-05-11 | Rurouni Kenshin[17] | ||
3.2 | 2021-08-05 | Quintessential Quintuplets[18] | ||
3.1 | 2021-06-07 | Pluto[19] | ||
3.0 | 2020-09-18 | One Piece[20] | ||
2.7 | 2022-07-01 | Наруто [21] | 2023-12-31 | 2023-12-31 |
2.6 | 2019-02-04 | Macross[22] | 2022-03-18 | 2023-09-18 |
2.5 | 2017-10-13 | Level E[23] | ||
2.4 | 2017-07-13 | Kill la Kill[24] | ||
2.3 | 2017-04-27 | JoJo’s Bizarre Adventure[25] | ||
2.2 | 2017-02-26 | Initial D[26] | ||
2.1 | 2016-11-22 | Hunter X Hunter[27] | ||
2.0 | 2016-09-30 | Ghost in the Shell[28] | ||
1.0 | 2015-10-27 | Евангеліён [29] | ||
0,12 | 2015-06-12 | Dragon Ball [30] | ||
0,11 | 2014-11-07 | Cowboy Bebop[31] | ||
0,10 | 2014-03-23 | Бягун па лязе[32] | ||
0,9 | 2014-02-25 | Animatrix[33] | ||
0,8 | 2014-01-27 | -[34] | першая публічна абвешчаная версія [15][16] | |
0,7 | 2013-12-24 | -[35] | ||
0,6 | 2013-12-08 | VueJS [36] |
Асаблівасці
правіцьКампаненты
правіцьКампаненты Vue пашыраюць базавыя элементы HTML для інкапсуляцыі прыгоднага для шматразовага выкарыстання кода. На высокім узроўні кампаненты — гэта прыстасаваныя элементы, да якіх кампілятар Vue прымацоўвае паводзіны. У Vue кампанент — гэта, у сутнасці, экзэмпляр Vue з загадзя вызначанымі параметрамі[37]. Прыведзены ніжэй фрагмент кода змяшчае прыклад кампанента 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 <nowiki>{{ count }}</nowiki> 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 дае мноства спосабаў ужывання эфектаў пераходу пры ўстаўцы, абнаўленні або выдаленні элементаў з DOM. Існуюць наступныя інструменты:
- Аўтаматычнае прымяненне класаў для CSS-пераходаў і анімацыі
- Інтэграцыя іншых бібліятэк CSS-анімацыі, такіх як Animate.css
- Выкарыстанне JavaScript для прамога маніпулявання DOM падчас пераходаў
- Інтэграцыя іншых бібліятэк анімацыі JavaScript, напрыклад Velocity.js
Калі элемент, абгорнуты ў кампанент пераходу, устаўляецца ці выдаляецца, адбываецца наступнае:
- Vue аўтаматычна вызначае, ці прымяняюцца да мэтавага элемента CSS-пераходы або анімацыя. Калі так, то класы CSS-пераходаў будуць дадавацца/выдаляцца ў адпаведныя моманты часу.
- Калі кампанент пераходу змяшчае JavaScript-хукі, то гэтыя хукі будуць выклікацца ў адпаведныя моманты часу.
- Калі CSS-пераходы/анімацыя не выяўлены і хукі JavaScript не прадстаўлены, то аперацыі DOM па ўстаўцы і/або выдаленні будуць выкананы адразу на наступным фрэйме[38][39].
Маршрутызацыя
правіць<div id="app">
<router-view></router-view>
</div>
...
<script>
...
const User = {
template: '<div>User <nowiki>{{ $route.params.id }}</nowiki></div>'
};
const router = new VueRouter({
routes: [
{ path: '/user/:id', component: User }
]
});
...
</script>
Код вышэй:
- Устанаўлівае знешні маршрут па адрасе
websitename.com/user/<id>
. - Які будзе адлюстроўвацца ў кампаненце User, вызначаным у (const User. . .)
- Дазваляе кампаненту User перадаць пэўны id карыстальніка, які быў уведзены ў URL, выкарыстоўваючы ключ params аб’екта $route:
$route.params.id
. - Гэты шаблон (змяняецца перададзенымі ў маршрутызатар параметрамі) будзе выведзены ў
<router-view></router-view>
усярэдзіне div#app DOM. - Канчаткова сфарміраваны HTML для карыстальніка, які набраў:
websitename.com/user/1
, будзе выглядаць наступным чынам[40]:
<div id="app">
<div>
<div>User 1</div>
</div>
</div>
Экасістэма
правіцьУ склад асноўнай бібліятэкі ўваходзяць інструменты і бібліятэкі, распрацаваныя як асноўнай камандай, так і звычайнымі распрацоўшчыкамі.
Афіцыйныя інструменты
правіць- Devtools — Браўзернае пашырэнне devtools для адладкі праграм на Vue.js
- Vue CLI — стандартны інструментарый для хуткай распрацоўкі Vue.js
- Vue Loader — загрузчык вэб-пакетаў, які дазваляе запісваць кампаненты Vue у фармаце Single-File Components (SFC).
Афіцыйныя бібліятэкі
правіць- Vue Router — афіцыйны маршрутызатар
- Vuex — цэнтралізаванае кіраванне станам, натхнёнае Flux
- Vue Server Renderer — рэндэрынг на баку сервера
- Pinia — новы просты спосаб кіравання станам
Зноскі
- ↑ https://egghead.io/podcasts/evan-you-creator-of-vue-js
- ↑ Release 3.4.30 — 2024. Праверана 27 чэрвеня 2024.
- ↑ The vue-js Open Source Project on Open Hub: Languages Page — 2006. Праверана 20 верасня 2018.
- ↑ а б в Introduction (англ.). Vuejs.org. Праверана January 3, 2020.
- ↑ Macrae, Callum (2018). Vue.js: Up and Running: Building Accessible and Performant Web Apps(англ.). O'Reilly Media. ISBN 978-1-4919-9721-5.
- ↑ Nelson, Brett (2018). Getting to Know Vue.js: Learn to Build Single Page Applications in Vue from Scratch(англ.). Apress. ISBN 978-1-4842-3781-6.
- ↑ Yerburgh, Edd (2019). Testing Vue.js Applications(англ.). Manning Publications. ISBN 978-1-61729-524-9.
- ↑ Freeman, Adam (2018). Pro Vue.js 2(англ.). Apress. ISBN 978-1-4842-3805-9.
- ↑ Franklin, Jack; Wanyoike, Michael; Bouchefra, Ahmed; Silas, Kingsley; Campbell, Chad A.; Jacques, Nilson; Omole, Olayinka; Mulders, Michiel (2019). Working with Vue.js(англ.). SitePoint. ISBN 978-1-4920-7144-0.(недаступная спасылка)
- ↑ [4][5][6][7][8][9]
- ↑ Meet the Team (англ.). Vuejs.org. Праверана September 23, 2019.
- ↑ Evan is creating Vue.js (англ.). Patreon. Праверана March 11, 2017.
- ↑ What is Vue.js (англ.). W3Schools. Праверана January 21, 2020.
- ↑ "Evan You". Between the Wires. November 3, 2016. Архівавана з арыгінала 3 чэрвеня 2017. Праверана 31 жніўня 2023.
- ↑ а б Vue.js: JavaScript MVVM made simple . Hacker News (3 лютага 2014). Праверана 29 студзеня 2023.
- ↑ а б First Week of Launching Vue.js . Evan You (11 лютага 2014). Праверана 29 студзеня 2023.
- ↑ v3.3.0 Rurouni Kenshin (англ.). Vue.js (11 мая 2023). Праверана 12 мая 2023.
- ↑ v3.2.0 Quintessential Quintuplets (англ.). Vue.js (5 жніўня 2021). Праверана August 10, 2021.
- ↑ v3.1.0 Pluto (англ.). Vue.js (7 чэрвеня 2021). Праверана July 18, 2021.
- ↑ v3.0.0 One Piece (англ.). Vue.js (18 верасня 2020). Праверана September 23, 2020.
- ↑ v2.7.0 Naruto (англ.). Vue.js (1 ліпеня 2022). Праверана July 1, 2022.
- ↑ v2.6.0 Macross (англ.). Vue.js (4 лютага 2019). Праверана September 23, 2020.
- ↑ v2.5.0 Level E (англ.). Vue.js (13 кастрычніка 2017). Праверана September 23, 2020.
- ↑ v2.4.0 Kill la Kill (англ.). Vue.js (13 ліпеня 2017). Праверана September 23, 2020.
- ↑ v2.3.0 JoJo's Bizarre Adventure (англ.). Vue.js (27 красавіка 2017). Праверана September 23, 2020.
- ↑ v2.2.0 Initial D (англ.). Vue.js (26 лютага 2017). Праверана September 23, 2020.
- ↑ v2.1.0 Hunter X Hunter (англ.). Vue.js (22 лістапада 2016). Праверана September 23, 2020.
- ↑ v2.0.0 Ghost in the Shell (англ.). Vue.js (30 верасня 2016). Праверана September 23, 2020.
- ↑ 1.0.0 Evangelion (англ.). Vue.js (27 кастрычніка 2015). Праверана September 23, 2020.
- ↑ 0.12.0: Dragon Ball (англ.). Vue.js (12 чэрвеня 2015). Праверана September 23, 2020.
- ↑ v0.11.0: Cowboy Bebop (англ.). Vue.js (7 лістапада 2014). Праверана September 23, 2020.
- ↑ v0.10.0: Blade Runner (англ.). Vue.js (23 сакавіка 2014). Праверана September 23, 2020.
- ↑ v0.9.0: Animatrix (англ.). Vue.js (25 лютага 2014). Праверана September 23, 2020.
- ↑ v0.8.0 (англ.). Vue.js (27 студзеня 2014). Праверана September 23, 2020.
- ↑ v0.7.0 (англ.). Vue.js (24 снежня 2013). Праверана September 23, 2020.
- ↑ 0.6.0: VueJS (англ.). Vue.js (8 снежня 2013). Праверана September 23, 2020.
- ↑ Components (англ.). Vuejs.org. Праверана March 11, 2017.
- ↑ Transition Effects (англ.). Vuejs.org. Праверана March 11, 2017.
- ↑ Transitioning State (англ.). Vuejs.org. Праверана March 11, 2017.
- ↑ You. Vue Nested Routing (2)(недаступная спасылка). Vue Home Page (subpage). Архівавана з першакрыніцы 8 мая 2017. Праверана May 10, 2017.