For your project structure:
-
avoid putting too much code in App.vue. This file is a part of every Vue app as the main "anchor point", usually where you'd include your router links or any mixins that need to be available to the application as a whole. In your case I think its okay since you only have one view.
-
it's good practice to create a "views" directory in the "src" directory. Any components in that directory are understood to be application views, and their filenames usually end in "View". In your case, you could create one component there called "TodoView.vue" which would hold your main application code, and you could import this into App.vue. The other files, such as "Todos.vue" and "TodoItems.vue" are not views, they are components and so they're fine where they are
-
the "views" directory isn't mandatory, it's just a convention so that other developers can see immediately which components are whole views and which are the components that make up those views
For your project structure:
avoid putting too much code in App.vue. This file is a part of every Vue app as the main "anchor point", usually where you'd include your router links or any mixins that need to be available to the application as a whole. In your case I think its okay since you only have one view.
it's good practice to create a "views" directory in the "src" directory. Any components in that directory are understood to be application views, and their filenames usually end in "View". In your case, you could create one component there called "TodoView.vue" which would hold your main application code, and you could import this into App.vue. The other files, such as "Todos.vue" and "TodoItems.vue" are not views, they are components and so they're fine where they are
the "views" directory isn't mandatory, it's just a convention so that other developers can see immediately which components are whole views and which are the components that make up those views