📖 Scenario: You are starting a new Vue 3 project to build a simple user profile card. Understanding the project structure will help you organize your files and code properly.
🎯 Goal: Build the basic Vue project structure with a main App.vue component, a components folder, and a UserProfile.vue component inside it.
📋 What You'll Learn
Create a components folder inside the src directory
Create a UserProfile.vue component inside the components folder
Set up the App.vue file to import and use UserProfile.vue
Use the <script setup> syntax in Vue 3 components
💡 Why This Matters
🌍 Real World
Organizing Vue project files and components is essential for building scalable and maintainable web applications.
💼 Career
Understanding Vue project structure and component communication is a key skill for frontend developers working with Vue.js.
Progress0 / 4 steps
1
Create the components folder and UserProfile.vue file
Inside the src directory, create a folder named components. Then create a file named UserProfile.vue inside the components folder with a basic Vue component structure using <template> and <script setup> tags.
Vue
Hint
Remember to use <template> and <script setup> tags in your Vue component.
2
Set up App.vue to import UserProfile.vue
In the src directory, open App.vue. Import the UserProfile component from ./components/UserProfile.vue using the <script setup> syntax. Add the <UserProfile /> tag inside the <template> section.
Vue
Hint
Use import UserProfile from './components/UserProfile.vue' inside <script setup> and add <UserProfile /> in the template.
3
Add a name prop to UserProfile.vue
In UserProfile.vue, add a defineProps call inside the <script setup> block to accept a name prop of type String. Update the template to display Hello, {{ name }}! inside a <p> tag.
Vue
Hint
Use const props = defineProps({ name: String }) and display {{ name }} in the template.
4
Pass the name prop from App.vue
In App.vue, update the <UserProfile /> tag to pass the name prop with the value "Alice".
Vue
Hint
Add name="Alice" inside the <UserProfile /> tag.
Practice
(1/5)
1. In a typical Vue project, where do you place your main application code like components and views?
easy
A. Inside the public/ folder
B. In the root project folder
C. Inside the src/ folder
D. Inside the node_modules/ folder
Solution
Step 1: Understand folder roles in Vue projects
The src/ folder is designed to hold your app's source code, including components and views.
Step 2: Identify correct folder for main code
The public/ folder holds static files like index.html, not app code.
Final Answer:
Inside the src/ folder -> Option C
Quick Check:
App code = src/ folder [OK]
Hint: Remember: src/ is for source code, public/ for static files [OK]
Common Mistakes:
Confusing public/ with src/ folder
Putting components in public/ folder
Placing code in node_modules/ folder
2. Which file in a Vue project typically serves as the entry point for the app?
easy
A. README.md in the root folder
B. index.html inside src/
C. package.json in the root folder
D. main.js or main.ts inside src/
Solution
Step 1: Identify entry point files in Vue
The entry point is usually a JavaScript or TypeScript file named main.js or main.ts inside src/.
Step 2: Differentiate from other files
index.html is a static file in public/, package.json manages dependencies, and README.md is documentation.
Final Answer:
main.js or main.ts inside src/ -> Option D
Quick Check:
Entry point = main.js/ts in src/ [OK]
Hint: Entry point is main.js or main.ts inside src/ [OK]
Which file is responsible for mounting the Vue app to the HTML page?
medium
A. App.vue
B. main.js
C. index.html
D. HelloWorld.vue
Solution
Step 1: Understand mounting in Vue
The main.js file usually creates the Vue app instance and mounts it to an element in index.html.
Step 2: Identify roles of other files
App.vue is the root component, index.html is the static HTML, and HelloWorld.vue is a child component.
Final Answer:
main.js -> Option B
Quick Check:
Mounting happens in main.js [OK]
Hint: Mounting code is in main.js, not components or HTML [OK]
Common Mistakes:
Thinking App.vue mounts the app
Choosing index.html as mounting file
Confusing child components with mounting logic
4. You see this error when running your Vue app: Cannot find module './components/HelloWorld.vue' What is the most likely cause related to project structure?
medium
A. The components folder is missing inside src/
B. The public/ folder is empty
C. The index.html file is inside src/
D. The main.js file is missing in the root folder
Solution
Step 1: Analyze the error message
The error says it cannot find the module ./components/HelloWorld.vue, meaning the import path is broken.
Step 2: Check folder structure relevance
If the components folder is missing inside src/, the import will fail. Other options do not affect this import.
Final Answer:
The components folder is missing inside src/ -> Option A
5. You want to add a global CSS file to your Vue project that should be included in every component. Where should you place this CSS file and how should you include it?
hard
A. Place it in src/assets/ and import it in main.js
B. Place it in public/ and link it in App.vue
C. Place it in src/components/ and import it in each component
D. Place it in the root folder and import it in index.html
Solution
Step 1: Identify best folder for global assets
The src/assets/ folder is used for styles and images that are part of the app source.
Step 2: Include global CSS properly
Importing the CSS file in main.js ensures it loads once and applies globally to all components.
Final Answer:
Place it in src/assets/ and import it in main.js -> Option A
Quick Check:
Global CSS in src/assets, imported in main.js [OK]
Hint: Global CSS goes in src/assets and imported in main.js [OK]
Common Mistakes:
Linking CSS in App.vue instead of main.js
Putting CSS in public/ folder without import
Importing CSS separately in every component
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.