Bird
Raised Fist0
Vueframework~5 mins

Vue project structure walkthrough

Choose your learning style10 modes available
Introduction

A Vue project has a folder setup that helps organize your code and files clearly. This makes it easier to build and maintain your app.

Starting a new Vue app and want to know where to put your files
Trying to find where components or styles are in a Vue project
Wanting to add new features without mixing up your code
Learning how Vue apps are organized for better teamwork
Debugging or improving your Vue app structure
Syntax
Vue
my-vue-project/
├── node_modules/
├── public/
├── src/
│   ├── assets/
│   ├── components/
│   ├── views/
│   ├── App.vue
│   ├── main.js
│   └── router.js
├── index.html
├── package.json
└── vite.config.js

src/ is where most of your app code lives.

public/ holds static files like favicon.ico that are served as-is without processing.

Examples
Assets hold images or styles. Components are reusable parts. Views are pages or screens.
Vue
src/
├── assets/
│   └── logo.png
├── components/
│   └── HelloWorld.vue
├── views/
│   └── HomeView.vue
├── App.vue
└── main.js
This is the main HTML file (in the project root) loaded by the browser. Vite processes it and injects your app here.
Vue
index.html
These files manage dependencies and build settings for your Vue app.
Vue
package.json
vite.config.js
Sample Program

This is a simple Vue component using the project structure. It loads an image from assets and a component from components folder.

Vue
<template>
  <div>
    <img alt="Vue logo" src="./assets/logo.png" />
    <HelloWorld msg="Welcome to Vue!" />
  </div>
</template>

<script setup>
import HelloWorld from './components/HelloWorld.vue'
</script>
OutputSuccess
Important Notes

Keep your components small and focused for easier reuse.

Use the views folder for main pages to keep routing clear.

Public folder files are not processed by the build tool, so put only static files there.

Summary

Vue projects have a clear folder structure to organize code and assets.

src/ holds your app code, index.html is in the root, public/ holds static files.

Following this structure helps keep your app clean and easy to work on.

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

  1. Step 1: Understand folder roles in Vue projects

    The src/ folder is designed to hold your app's source code, including components and views.
  2. Step 2: Identify correct folder for main code

    The public/ folder holds static files like index.html, not app code.
  3. Final Answer:

    Inside the src/ folder -> Option C
  4. 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

  1. 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/.
  2. Step 2: Differentiate from other files

    index.html is a static file in public/, package.json manages dependencies, and README.md is documentation.
  3. Final Answer:

    main.js or main.ts inside src/ -> Option D
  4. Quick Check:

    Entry point = main.js/ts in src/ [OK]
Hint: Entry point is main.js or main.ts inside src/ [OK]
Common Mistakes:
  • Choosing index.html as entry point
  • Confusing package.json with entry point
  • Selecting README.md as app start file
3. Given this Vue project structure snippet:
public/
  index.html
src/
  components/
    HelloWorld.vue
  App.vue
  main.js

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

  1. 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.
  2. 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.
  3. Final Answer:

    main.js -> Option B
  4. 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

  1. Step 1: Analyze the error message

    The error says it cannot find the module ./components/HelloWorld.vue, meaning the import path is broken.
  2. 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.
  3. Final Answer:

    The components folder is missing inside src/ -> Option A
  4. Quick Check:

    Missing components folder breaks imports [OK]
Hint: Missing folder causes import errors, check src/components/ [OK]
Common Mistakes:
  • Ignoring folder location for components
  • Thinking public/ folder affects imports
  • Assuming main.js must be in root folder
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

  1. 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.
  2. Step 2: Include global CSS properly

    Importing the CSS file in main.js ensures it loads once and applies globally to all components.
  3. Final Answer:

    Place it in src/assets/ and import it in main.js -> Option A
  4. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard