Веб-бағдарламалау дамып келе жатқан заманда JavaScript негізіндегі ең танымал үш “фронтенд” фреймворкы – ReactJS, Angular және VueJS туралы сөйлесеміз. Осы блогта олардың негізгі айырмашылықтары, артықшылықтары мен кемшіліктері туралы айтылады. Мақсат – қайсысы сізге қолайлы екенін анықтау.
ReactJS – бұл Facebook (Meta) жасаған, компоненттік негіздегі кітапхана. Бұл фреймворк емес, өйткені React тек “view layer” үшін жауап береді, қалғандарын қосымша кітапханалар арқылы іске асыру қажет.
React минималистік тәсіл ұсынады. Мысалы, маршрутизация немесе жаһандық күйді басқару үшін бөлек кітапханалар қосылады.
React-тың ең басты ерекшелігі – “виртуалды DOM”. Бұл өнімділікті жиі арттырады.
React-ты үйрену оңай, бірақ қосымша кітапханалармен жұмыс істей білу қажет.
import React from 'react';
// Қарапайым React компоненті
function HelloWorld() {
// Бірнеше тегті қайтару үшін Fragment немесе <> </> қолданылады
return (
<>
<h1>Hello World!</h1>
<p>Бұл React компонентінің мысалы</p>
</>
);
}
export default HelloWorld;
Angular – бұл Google жасаған толыққанды фреймворк. TypeScript негізінде жұмыс істейді және барлық қажетті функцияларды қамтиды.
Angular-да “components”, “services” және “modules” сияқты нақты құрылым бар.
Angular TypeScript-ті қолданады, бұл үлкен жобалар үшін ыңғайлы.
Angular екі жақты деректер байланысын қамтамасыз етеді, бұл модель мен көрініс арасында синхрондылықты қамтамасыз етеді.
import { Component } from '@angular/core';
@Component({
selector: 'app-hello-world',
template: `
<!-- Шаблонда екі жақты деректер байланысын көрсету -->
<h1>Hello World</h1>
<p>Бұл Angular компонентінің мысалы</p>
`
})
export class HelloWorldComponent {
// Angular-да TypeScript пайдаланылады
}
VueJS – бұл Evan You жасаған “прогрессивті” фреймворк. Vue-ді шағын жобалардан бастап үлкен жобаларға дейін қолдануға болады.
Vue минималды өзекке ие, бірақ ресми қосымшалар оңай біріктіріледі.
Vue қолдану оңай және жылдам.
<template>
<!-- Vue шаблонында деректерді {{ }} арқылы шақырамыз -->
<div>
<h1>Hello World</h1>
<p>Бұл Vue компонентінің мысалы</p>
</div>
</template>
<script>
export default {
name: 'HelloWorld',
data() {
// data - компоненттегі деректерді сақтайды
return {
message: 'Vue компонентінен сәлем!'
};
}
};
</script>
<style scoped>
/* Scoped style - стиль тек осы компоненттің ішінде жұмыс істейді */
h1 {
color: #42b983;
}
</style>