# Vue Components (Vue.js / Nuxt.js) > Component lifecycle, props, events, slots, scoped styles, component communication, dynamic components - 20 interview questions - Junior - [Interview Questions: Vue.js / Nuxt.js](https://sharpskill.dev/en/technologies/vue-nuxt/interview-questions.md) ## 1. What is a Vue component? **Answer** A Vue component is a reusable Vue instance with a name. It encapsulates HTML, CSS and JavaScript into an independent logical unit. Components allow dividing the user interface into reusable and maintainable pieces. Each component has its own template, logic and styles, facilitating code organization and reusability. ## 2. How to declare props in a Vue 3 component with script setup? **Answer** In Vue 3 with script setup, defineProps() is a compiler macro that allows declaring props without explicit import. This macro automatically generates the necessary code and exposes props to the template. It supports TypeScript and JavaScript type validation, making the code more concise and type-safe than the Options API approach. ## 3. What is the function of the onMounted() hook in a component lifecycle? **Answer** The onMounted() hook executes after the component has been mounted to the DOM. This is the ideal moment to perform operations that require DOM access, like initializing third-party libraries, fetching data via API, or directly manipulating DOM elements. At this stage, the template is rendered and refs are accessible. ## 17 more questions available - How does a child component emit an event to its parent component? - What are slots used for in a Vue component? Sign up for free: https://sharpskill.dev/en/login ## Other Vue.js / Nuxt.js interview topics - [JavaScript Fundamentals](https://sharpskill.dev/en/technologies/vue-nuxt/interview-questions/javascript-fundamentals.md): 20 questions, Junior - [Modern JavaScript (ES6+)](https://sharpskill.dev/en/technologies/vue-nuxt/interview-questions/es6-modern-javascript.md): 20 questions, Junior - [Vue Basics](https://sharpskill.dev/en/technologies/vue-nuxt/interview-questions/vue-basics.md): 22 questions, Junior - [Vue Router](https://sharpskill.dev/en/technologies/vue-nuxt/interview-questions/vue-router.md): 18 questions, Junior - [Pinia State Management](https://sharpskill.dev/en/technologies/vue-nuxt/interview-questions/pinia-state-management.md): 20 questions, Junior - [Vuex (Legacy)](https://sharpskill.dev/en/technologies/vue-nuxt/interview-questions/vuex-legacy.md): 15 questions, Mid-Level - [Composition API](https://sharpskill.dev/en/technologies/vue-nuxt/interview-questions/composition-api.md): 24 questions, Mid-Level - [Vue Reactivity](https://sharpskill.dev/en/technologies/vue-nuxt/interview-questions/vue-reactivity.md): 20 questions, Mid-Level - [Nuxt Fundamentals](https://sharpskill.dev/en/technologies/vue-nuxt/interview-questions/nuxt-fundamentals.md): 22 questions, Mid-Level - [Nuxt Data Fetching](https://sharpskill.dev/en/technologies/vue-nuxt/interview-questions/nuxt-data-fetching.md): 20 questions, Mid-Level - [Nuxt SSR & SSG](https://sharpskill.dev/en/technologies/vue-nuxt/interview-questions/nuxt-ssr-ssg.md): 22 questions, Mid-Level - [Nuxt Server Routes](https://sharpskill.dev/en/technologies/vue-nuxt/interview-questions/nuxt-server-routes.md): 20 questions, Mid-Level - [Nuxt Modules](https://sharpskill.dev/en/technologies/vue-nuxt/interview-questions/nuxt-modules.md): 18 questions, Mid-Level - [Vue Composables](https://sharpskill.dev/en/technologies/vue-nuxt/interview-questions/vue-composables.md): 20 questions, Mid-Level - [Vue Forms & Validation](https://sharpskill.dev/en/technologies/vue-nuxt/interview-questions/vue-forms-validation.md): 20 questions, Mid-Level - [Nuxt State Management](https://sharpskill.dev/en/technologies/vue-nuxt/interview-questions/nuxt-state-management.md): 18 questions, Mid-Level - [Vue Testing](https://sharpskill.dev/en/technologies/vue-nuxt/interview-questions/vue-testing.md): 20 questions, Mid-Level - [Nuxt Deployment & CI/CD](https://sharpskill.dev/en/technologies/vue-nuxt/interview-questions/nuxt-deployment-cicd.md): 22 questions, Mid-Level - [Vue Performance](https://sharpskill.dev/en/technologies/vue-nuxt/interview-questions/vue-performance.md): 22 questions, Senior - [Vue Advanced Patterns](https://sharpskill.dev/en/technologies/vue-nuxt/interview-questions/vue-advanced-patterns.md): 24 questions, Senior - [TypeScript with Vue](https://sharpskill.dev/en/technologies/vue-nuxt/interview-questions/typescript-vue.md): 22 questions, Senior - [Nuxt Authentication](https://sharpskill.dev/en/technologies/vue-nuxt/interview-questions/nuxt-auth.md): 20 questions, Senior - [SEO with Nuxt](https://sharpskill.dev/en/technologies/vue-nuxt/interview-questions/nuxt-seo.md): 20 questions, Senior - [Nuxt Internationalization](https://sharpskill.dev/en/technologies/vue-nuxt/interview-questions/nuxt-i18n.md): 18 questions, Senior - [Vue Architecture](https://sharpskill.dev/en/technologies/vue-nuxt/interview-questions/vue-architecture.md): 22 questions, Senior - [Nuxt Security](https://sharpskill.dev/en/technologies/vue-nuxt/interview-questions/nuxt-security.md): 20 questions, Senior - [Vue Ecosystem](https://sharpskill.dev/en/technologies/vue-nuxt/interview-questions/vue-ecosystem.md): 18 questions, Senior - [Migration Vue 2→3 & Nuxt 2→3](https://sharpskill.dev/en/technologies/vue-nuxt/interview-questions/migration-vue2-vue3-nuxt2-nuxt3.md): 22 questions, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/en/technologies/vue-nuxt/interview-questions/vue-components