HamSter007
@HamSter007
HTML/CSS верстальщик

Как правильно подключить все компонетны в vue проекте?

Есть простейший vue проект с такой структурой (по аналогии с проектом realworld-vue):

_______________________________________

src ¬
.... assets
.... components ¬
............................ Home.vue
............................ Map.vue
.... router ¬
................. index.js
.... App.vue
.... main.js
_______________________________________

Содержимое router/index.js:

import Vue from 'vue';
    import Router from 'vue-router';    
    
    Vue.use(Router); 
    
    const routes = [
    	{
    		path: '/',
    		name: 'home',
    		title: 'Home',
    		component: Home
    	},
    	{
    		path: '/',
    		name: 'map',
    		title: 'Map',
    		component: Map
    	},
    	{
    		path: '*',
    		redirect: { name: 'home' },
    	},
    ];
    
    export default new Router({
    	routes,
    });


Содержимое components/Home.vue (аналогично и для Map.vue):

<template>
    	<div id="Home">
    		Home
    	</div>
    </template>
    
    <script>
    	export default {
    		name: 'Home'
    	};
    </script>
    
    <style scoped>
    </style>


Содержимое App.vue:

<template>
        <div id="app">
            <h1>Hello World!</h1>
    
            <!-- <real-world-home />-->
            <router-view></router-view> 
        </div>
    </template>
    
    <script>
        import Home from './components/Home';
    
        export default {
            name: 'app',
            components: { Home }
        }
    </script>
    
    <style lang="scss">
    </style>


Содержимое main.js:

import Vue from 'vue'; 
    
    import App from './App';
    import router from './router';
    
    new Vue({
    	el: '#app',
    	router,
    	template: '<App/>',
    	components: { App },
    	store,
    	render: h => h(App)
    });


Запускаю webpack, ошибок нет, но и на экране ничего нет. Сборщик настроен, роутер тоже.

Но в панели разработчиков есть только <div id="app"></div> и ошибка:

Uncaught ReferenceError: Home is not defined


Вопрос: Как правильно подключить все компонетны в vue проекте? ...

Какая правильная последовательность подключения файлов, импорт, структура проекта?

И правильно ли я понимаю что в router подключаются все файлы компонентов?
  • Вопрос задан
  • 650 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Vue.js
Импортируйте компоненты Home и Map (надо заметить, что имена подобраны так себе - одно слово не рекомендуется использовать; кроме того, Map уже есть) там, где используете их - в router/index.js, импортировать в App.vue не надо (как и указывать их в components). Типа так.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
werty1001
@werty1001
undefined
- Структура может быть любая, обычно достаточно той, что идет из коробки сборки.
- Компоненты можно подключать глобально и локально, первый вариант для базовых компонентов, которые часто используются, например кнопка, поле и прочее, остальное подключайте локально.
- В router (и в принципе везде) подключаются, те компоненты, которые нужны, в вашем случае Home и Map.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы