Skip to main content

4. Front End Architecture.html

Vue JS SPA (Single-Page Application)

 

Vue.js merupakan salah satu framework JavaScript yang dapat digunakan untuk membangun aplikasi web dengan arsitektur single-page application (SPA). SPA adalah sebuah aplikasi web yang memungkinkan pengguna untuk menjelajahi berbagai fitur dan konten hanya melalui satu halaman web tanpa perlu memuat ulang halaman tersebut ketika pengguna melakukan navigasi.

Untuk membangun SPA dengan Vue.js, terdapat beberapa konsep dan teknik yang perlu dipahami, antara lain:

  1. Routing: Routing merupakan teknik untuk menangani navigasi pengguna di dalam aplikasi web. Dalam Vue.js, routing dapat diimplementasikan dengan menggunakan Vue Router. Vue Router memungkinkan kita untuk mendefinisikan berbagai rute atau halaman yang dapat diakses oleh pengguna, serta menentukan komponen Vue.js yang akan ditampilkan di halaman tersebut.
  2. Komponen: Komponen merupakan salah satu fitur utama dalam Vue.js yang memungkinkan kita untuk memecah tampilan menjadi bagian-bagian yang lebih kecil dan terpisah. Dengan menggunakan komponen, kita dapat mengorganisir kode dengan lebih baik, memudahkan pemeliharaan, serta membuat tampilan lebih fleksibel dan mudah dikustomisasi.
  3. Data binding: Data binding merupakan teknik untuk menghubungkan data di dalam komponen dengan tampilan yang ditampilkan ke pengguna. Dalam Vue.js, terdapat dua jenis data binding, yaitu one-way binding dan two-way binding. One-way binding memungkinkan kita untuk mengikat data dari komponen ke tampilan, sedangkan two-way binding memungkinkan kita untuk mengikat data dari komponen ke tampilan dan sebaliknya.
  4. State management: State management merupakan teknik untuk mengelola data atau state di dalam aplikasi web. Dalam Vue.js, terdapat dua jenis state management, yaitu Vuex dan Pinia. Vuex adalah library state management resmi dari Vue.js, sedangkan Pinia adalah alternatif library state management yang lebih mudah digunakan dan fleksibel.

Dengan memahami konsep dan teknik tersebut, kita dapat membangun aplikasi web dengan arsitektur SPA menggunakan Vue.js. Selain itu, Vue.js juga memiliki berbagai fitur dan plugin lain yang memudahkan pengembangan aplikasi web, seperti Vue CLI, Vue DevTools, dan banyak lagi

Selain konsep dan teknik yang telah disebutkan sebelumnya, berikut ini adalah beberapa materi tambahan yang perlu dipahami untuk membangun aplikasi web dengan Vue.js yang berbasis SPA:

  1. Lifecycle hooks: Lifecycle hooks merupakan metode yang dapat digunakan untuk mengeksekusi kode pada saat terjadi peristiwa tertentu dalam siklus hidup sebuah komponen. Dalam Vue.js, terdapat beberapa lifecycle hooks seperti created, mounted, updated, dan destroyed.
  2. Direktif: Direktif merupakan atribut khusus pada elemen HTML yang digunakan untuk memberikan perilaku tertentu pada tampilan. Dalam Vue.js, terdapat beberapa direktif bawaan seperti v-if, v-for, v-bind, v-on, dan banyak lagi. Selain direktif bawaan, kita juga dapat membuat direktif kustom sesuai dengan kebutuhan.
  3. Event handling: Event handling merupakan teknik untuk menangani peristiwa atau event tertentu yang terjadi di dalam aplikasi web. Dalam Vue.js, kita dapat menangani event dengan menggunakan direktif v-on atau menggunakan listener event di dalam komponen.
  4. Animasi: Animasi merupakan fitur yang dapat meningkatkan interaksi pengguna dengan aplikasi web. Dalam Vue.js, kita dapat membuat animasi dengan menggunakan transition atau animation. Transition digunakan untuk menambahkan efek transisi pada perubahan tampilan, sedangkan animation digunakan untuk membuat animasi yang lebih kompleks.
  5. Server-side rendering: Server-side rendering (SSR) merupakan teknik untuk membuat aplikasi web dengan memproses tampilan di server sebelum dikirim ke pengguna. Dalam Vue.js, SSR dapat diimplementasikan dengan menggunakan Vue SSR atau Nuxt.js. SSR dapat meningkatkan performa aplikasi web dengan mengurangi waktu muat halaman dan meningkatkan SEO.

Dengan memahami materi-materi di atas, kita dapat membangun aplikasi web dengan arsitektur SPA yang lebih kompleks dan interaktif menggunakan Vue.js.

Membuat Proyek Sederhana SPA pada Vue Js :

Langkah 1: Persiapan

        Pastikan Node.js terinstal di komputer.

        Buka terminal dan buat direktori baru untuk proyek.

        Masuk ke direktori tersebut melalui terminal.

        Jalankan perintah npm init untuk membuat package.json.

        Ikuti instruksi untuk mengatur package.json.

Langkah 2: Instalasi Vue.js

        Jalankan perintah npm install vue untuk menginstal Vue.js.

Langkah 3: Membuat File HTML dan JavaScript

        Buat file index.html di dalam direktori proyek.

        Tambahkan kode berikut ke dalam index.html:

        Buat file main.js di dalam direktori proyek.

        Tambahkan kode berikut ke dalam main.js:

Langkah 4: Menjalankan Proyek

        Kembali ke terminal.

        Jalankan perintah npm install -g live-server untuk menginstal live-server (opsional).

        Jalankan perintah live-server untuk memulai server lokal (opsional).

        Buka browser dan akses http://localhost:8080 (atau port yang ditampilkan oleh live-server jika digunakan).

        Anda akan melihat pesan "Hello, Vue.js!" ditampilkan di halaman web.

Dengan langkah-langkah di atas, Kalian telah membuat proyek SPA sederhana menggunakan Vue.js. Kalian dapat mengembangkan proyek ini lebih lanjut dengan menambahkan komponen, routing, interaksi dengan API, dan fitur-fitur lainnya sesuai dengan kebutuhan.

Langkah-langkah diatas sebenarnya sudah jarang atau bahkan sudah tidak digunakan di zaman ini,namun masih bisa dilakukan,kalian juga bisa menggunakan yang lebih simpel dan praktis tanpa harus membuat file html dan main.js seperti diatas, bisa kalian perhatikan langkah-langkahnya sebagai berikut :

Langkah 1 : Persiapan

        Pastikan Node.js sudah terinstall pada komputer.

        Masuk pada terminal di komputer dan ketik npm init vue@latest

        Kemudian namai projek kalian dan pilih dependensi apa saja yang akan di install

Gambar sebagai berikut :

.

        Lalu buka folder projek kalian,karena nama projek saya vue-project-test maka saya mengetikkan cd vue-project-test

        Kemudian install node-modules dengan mengetikkan npm install pada terminal di dalam folder projek kalian

Ini adalah tampilan jika kalian berhasil mengikuti langkah-langkah diatas :

        Langkah Selanjutnya,kalian bisa mengetikkan npm run build pada terminal di dalam folder projek.

        Untuk menampilkan di browser,kalian ketik http://localhost:5173/ atau bisa dengan localhost:5173

Gambar diatas merupakan hasil dari instalasi SPA untuk Vue Js kalian,kalian bisa mengubah atau mengganti Component yang ada di dalam nya.

Tugas :

Pada tampilan SPA diatas sudah ada component Home Dan About,Sekarang tambahkan component Service di sebelah About dengan isi page kosong(seperti component About).

 

Quiz

  1. Apa yang dimaksud dengan SPA (Single-Page Application)?
    1. Aplikasi web yang hanya terdiri dari satu halaman saja
    2. Aplikasi web yang dapat diakses secara offline
    3. Aplikasi web yang menggunakan teknologi server-side rendering
    4. Aplikasi web yang memberikan pengalaman yang konsisten seperti aplikasi desktop
  2. Apa keuntungan utama menggunakan Vue.js untuk membangun SPA?
    1. Performa yang lebih baik dibandingkan dengan teknologi lain
    2. Memiliki komunitas pengembang yang besar dan dukungan yang kuat
    3. Memungkinkan pengembangan aplikasi yang lebih kompleks dan modular
    4. Tidak memerlukan pengetahuan khusus dalam bahasa pemrograman
  3. Apa yang dimaksud dengan routing dalam konteks Vue.js SPA?
    1. Proses mengubah tampilan halaman secara dinamis tanpa perlu memuat ulang halaman
    2. Proses mengirim data antara komponen-komponen dalam aplikasi Vue.js
    3. Proses menghubungkan aplikasi Vue.js dengan API backend
    4. Proses mengoptimalkan performa aplikasi Vue.js dengan teknik caching
  4. Apa yang dimaksud dengan route component dalam Vue.js SPA?
    1. Komponen yang digunakan untuk mengatur navigasi antar halaman
    2. Komponen yang digunakan untuk menampilkan data dari API backend
    3. Komponen yang digunakan untuk mengatur layout aplikasi
    4. Komponen yang digunakan untuk menampilkan konten halaman
  5. Bagaimana cara menentukan route dalam Vue.js menggunakan Vue Router?
    1. Dengan menambahkan konfigurasi route pada file main.js
    2. Dengan menggunakan metode route() pada objek Vue
    3. Dengan menambahkan konfigurasi route pada file router.js
    4. Dengan menggunakan metode route() pada komponen
  6. Apa yang dimaksud dengan nested route dalam Vue.js SPA?
    1. Route yang diletakkan dalam folder terpisah dalam struktur aplikasi
    2. Route yang memiliki parameter dinamis pada URL
    3. Route yang menjadi child dari route utama
    4. Route yang memungkinkan pengguna untuk mengganti tema aplikasi
  7. Bagaimana cara menentukan nested route dalam Vue.js menggunakan Vue Router?
    1. Dengan menambahkan nested route pada konfigurasi route utama
    2. Dengan menggunakan metode nested() pada objek Vue
    3. Dengan menambahkan nested route pada komponen utama
    4. Dengan menggunakan metode nested() pada komponen
  8. Apa yang dimaksud dengan named route dalam Vue.js SPA?
    1. Route yang memiliki nama unik untuk memudahkan pemanggilan
    2. Route yang menggunakan parameter dinamis pada URL
    3. Route yang memiliki komponen khusus untuk tampilan detail
    4. Route yang menggunakan metode HTTP GET untuk pengambilan data
  9. Bagaimana cara membuat named route dalam Vue.js menggunakan Vue Router?
    1. Dengan memberikan properti name pada konfigurasi route
    2. Dengan menggunakan metode name() pada objek Vue
    3. Dengan memberikan properti name pada komponen
    4. Dengan menggunakan metode name() pada komponen
  10. Apa yang dimaksud dengan lazy loading route dalam Vue.js SPA?
    1. Proses memuat komponen halaman hanya saat diperlukan
    2. Proses memuat seluruh komponen halaman saat aplikasi dimuat
    3. Proses mengganti tema aplikasi secara dinamis
    4. Proses memuat data dari API backend secara asinkron
Last modified: Monday, 7 August 2023, 10:10 AM