# Komponen Vue (Vue.js / Nuxt.js) > Lifecycle komponen, props, events, slots, scoped styles, komunikasi antar komponen, komponen dinamis - 20 pertanyaan wawancara - Junior - [Pertanyaan Wawancara: Vue.js / Nuxt.js](https://sharpskill.dev/id/technologies/vue-nuxt/pertanyaan-wawancara.md) ## 1. Apa itu komponen Vue? **Jawaban** Komponen Vue adalah instance Vue yang dapat digunakan kembali dengan sebuah nama. Komponen ini mengenkapsulasi HTML, CSS, dan JavaScript ke dalam satu unit logis yang independen. Komponen memungkinkan pembagian antarmuka pengguna menjadi bagian-bagian yang dapat digunakan kembali dan mudah dipelihara. Setiap komponen memiliki template, logika, dan style sendiri, sehingga memudahkan pengorganisasian kode dan penggunaan ulang. ## 2. Bagaimana cara mendeklarasikan props dalam komponen Vue 3 dengan script setup? **Jawaban** Pada Vue 3 dengan script setup, defineProps() adalah compiler macro yang memungkinkan deklarasi props tanpa import eksplisit. Macro ini secara otomatis menghasilkan kode yang diperlukan dan mengekspos props ke template. Macro ini mendukung validasi tipe TypeScript dan JavaScript, membuat kode lebih ringkas dan type-safe dibandingkan pendekatan Options API. ## 3. Apa fungsi hook onMounted() dalam lifecycle sebuah komponen? **Jawaban** Hook onMounted() dijalankan setelah komponen di-mount ke DOM. Ini adalah momen ideal untuk melakukan operasi yang membutuhkan akses DOM, seperti menginisialisasi library pihak ketiga, mengambil data melalui API, atau memanipulasi elemen DOM secara langsung. Pada tahap ini, template sudah dirender dan refs dapat diakses. ## 17 pertanyaan lagi tersedia - Bagaimana komponen anak meng-emit sebuah event ke komponen induknya? - Untuk apa slots digunakan dalam sebuah komponen Vue? Daftar gratis: https://sharpskill.dev/id/login ## Topik wawancara Vue.js / Nuxt.js lainnya - [Dasar-Dasar JavaScript](https://sharpskill.dev/id/technologies/vue-nuxt/pertanyaan-wawancara/javascript-fundamentals.md): 20 pertanyaan, Junior - [JavaScript Modern (ES6+)](https://sharpskill.dev/id/technologies/vue-nuxt/pertanyaan-wawancara/es6-modern-javascript.md): 20 pertanyaan, Junior - [Dasar-Dasar Vue](https://sharpskill.dev/id/technologies/vue-nuxt/pertanyaan-wawancara/vue-basics.md): 22 pertanyaan, Junior - [Vue Router](https://sharpskill.dev/id/technologies/vue-nuxt/pertanyaan-wawancara/vue-router.md): 18 pertanyaan, Junior - [Pinia State Management](https://sharpskill.dev/id/technologies/vue-nuxt/pertanyaan-wawancara/pinia-state-management.md): 20 pertanyaan, Junior - [Vuex (Legacy)](https://sharpskill.dev/id/technologies/vue-nuxt/pertanyaan-wawancara/vuex-legacy.md): 15 pertanyaan, Mid-Level - [Composition API](https://sharpskill.dev/id/technologies/vue-nuxt/pertanyaan-wawancara/composition-api.md): 24 pertanyaan, Mid-Level - [Reaktivitas Vue](https://sharpskill.dev/id/technologies/vue-nuxt/pertanyaan-wawancara/vue-reactivity.md): 20 pertanyaan, Mid-Level - [Dasar-Dasar Nuxt](https://sharpskill.dev/id/technologies/vue-nuxt/pertanyaan-wawancara/nuxt-fundamentals.md): 22 pertanyaan, Mid-Level - [Data Fetching Nuxt](https://sharpskill.dev/id/technologies/vue-nuxt/pertanyaan-wawancara/nuxt-data-fetching.md): 20 pertanyaan, Mid-Level - [SSR & SSG Nuxt](https://sharpskill.dev/id/technologies/vue-nuxt/pertanyaan-wawancara/nuxt-ssr-ssg.md): 22 pertanyaan, Mid-Level - [Server Routes Nuxt](https://sharpskill.dev/id/technologies/vue-nuxt/pertanyaan-wawancara/nuxt-server-routes.md): 20 pertanyaan, Mid-Level - [Modul Nuxt](https://sharpskill.dev/id/technologies/vue-nuxt/pertanyaan-wawancara/nuxt-modules.md): 18 pertanyaan, Mid-Level - [Composable Vue](https://sharpskill.dev/id/technologies/vue-nuxt/pertanyaan-wawancara/vue-composables.md): 20 pertanyaan, Mid-Level - [Form & Validasi Vue](https://sharpskill.dev/id/technologies/vue-nuxt/pertanyaan-wawancara/vue-forms-validation.md): 20 pertanyaan, Mid-Level - [Manajemen State Nuxt](https://sharpskill.dev/id/technologies/vue-nuxt/pertanyaan-wawancara/nuxt-state-management.md): 18 pertanyaan, Mid-Level - [Testing Vue](https://sharpskill.dev/id/technologies/vue-nuxt/pertanyaan-wawancara/vue-testing.md): 20 pertanyaan, Mid-Level - [Deployment Nuxt & CI/CD](https://sharpskill.dev/id/technologies/vue-nuxt/pertanyaan-wawancara/nuxt-deployment-cicd.md): 22 pertanyaan, Mid-Level - [Performa Vue](https://sharpskill.dev/id/technologies/vue-nuxt/pertanyaan-wawancara/vue-performance.md): 22 pertanyaan, Senior - [Pola Lanjutan Vue](https://sharpskill.dev/id/technologies/vue-nuxt/pertanyaan-wawancara/vue-advanced-patterns.md): 24 pertanyaan, Senior - [TypeScript dengan Vue](https://sharpskill.dev/id/technologies/vue-nuxt/pertanyaan-wawancara/typescript-vue.md): 22 pertanyaan, Senior - [Autentikasi Nuxt](https://sharpskill.dev/id/technologies/vue-nuxt/pertanyaan-wawancara/nuxt-auth.md): 20 pertanyaan, Senior - [SEO dengan Nuxt](https://sharpskill.dev/id/technologies/vue-nuxt/pertanyaan-wawancara/nuxt-seo.md): 20 pertanyaan, Senior - [Internasionalisasi Nuxt](https://sharpskill.dev/id/technologies/vue-nuxt/pertanyaan-wawancara/nuxt-i18n.md): 18 pertanyaan, Senior - [Arsitektur Vue](https://sharpskill.dev/id/technologies/vue-nuxt/pertanyaan-wawancara/vue-architecture.md): 22 pertanyaan, Senior - [Keamanan Nuxt](https://sharpskill.dev/id/technologies/vue-nuxt/pertanyaan-wawancara/nuxt-security.md): 20 pertanyaan, Senior - [Ekosistem Vue](https://sharpskill.dev/id/technologies/vue-nuxt/pertanyaan-wawancara/vue-ecosystem.md): 18 pertanyaan, Senior - [Migrasi Vue 2→3 & Nuxt 2→3](https://sharpskill.dev/id/technologies/vue-nuxt/pertanyaan-wawancara/migration-vue2-vue3-nuxt2-nuxt3.md): 22 pertanyaan, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/id/technologies/vue-nuxt/pertanyaan-wawancara/vue-components