В соответствии с помощью здесь я создал следующие app.js
/**
* First we will load all of this project's JavaScript dependencies which
* includes Vue and other libraries. It is a great starting point when
* building robust, powerful web applications using Vue and Laravel.
*/
import Vue from 'vue'
import VueRouter from 'vue-router'
import App from './app.vue'
import welcome from './components/pages/Welcome'
import about from './components/pages/About'
import contact from './components/pages/Contact'
require('./bootstrap');
window.Vue = require('vue');
/**
* Next, we will create a fresh Vue application instance and attach it to
* the page. Then, you may begin adding components to this application
* or customize the JavaScript scaffolding to fit your unique needs.
*/
Vue.component('passport-clients', require('./components/passport/Clients.vue'));
Vue.component('passport-authorized-clients', require('./components/passport/AuthorizedClients.vue'));
Vue.component('passport-personal-access-tokens', require('./components/passport/PersonalAccessTokens.vue'));
Vue.use(VueRouter);
const routes = [
{ path: '/', name: 'welcome', component: Welcome },
{ path: '/about', name: 'about', component: About },
{ path: '/contact', name: 'contact', component: Contact }
]
const router = new VueRouter({
mode: 'history',
routes // short for `routes: routes`
});
const app = new Vue({
el: '#app',
router,
render: h => h(App)
});
и App.vue
<template>
<div id = "app">
<Navbar v-if = "isHome" />
<router-view></router-view>
<Footer />
</div>
</template>
<script>
import Navbar from './components/includes/Navbar.vue'
import Footer from './components/includes/Footer.vue'
export default{
components: {
'Navbar': Navbar,
'Footer': Footer
}
}
</script>
Welcome.vue в папке компонентов / страниц
<template>
<div>
<h3>This is the Index page</h3>
</div>
</template>
<script>
export default {}
</script>
Компонент Navbar в папке components / includes
<template>
<div>
<h3>This is the Navbar</h3>
</div>
</template>
<script>
export default {}
</script>
Точно так же я создал все остальные страницы, навигационную панель, компоненты нижнего колонтитула. Когда я запускаю npm run dev, он говорит, что сборка прошла успешно. Когда я посещаю URL-адрес localhost: 800, vue не отображается. На вкладке консоли инспектора Chrome отображается Uncaught ReferenceError: Welcome is not defined
Также мне нужно удалить индексный маршрут из web.php
@Doblel Я чувствую себя идиотом. Ты прав. При изменении его на «Добро пожаловать» отображается вид «Добро пожаловать». Но он показывает страницу приветствия и нижний колонтитул, а не панель навигации. Как это решить?
Нет проблем, здесь, чтобы помочь





JavaScipt чувствителен к регистру, а переменная «welcome» - это не то же самое, что «Welcome».
import welcome from './components/pages/Welcome'
{ path: '/', name: 'welcome', component: Welcome },
Измените на:
{ path: '/', name: 'welcome', component: welcome },
и он должен работать. Проделайте то же самое с остальными переменными - about и contact.
Теперь панель навигации не отображает только приветствие и нижний колонтитул. я обновил код
<Navbar v-if = "isHome" /> в этой строке говорится, что Navbar должен отображаться только в том случае, если "isHome" истинно. Я не вижу, чтобы это было определено, поэтому это могло быть "undefined", что было ложью.
Да, это ошибка отображается в консоли Chrome. Так нужно ли мне определять его по умолчанию для экспорта?
Вы можете сделать это или удалить v-if = "isHome", если хотите, чтобы панель навигации всегда отображалась. Также, если вам понравился ответ, примите его.
Большой! Спасибо. В нем говорится, что вы можете принять ответ через 5 минут. Так что я жду, чтобы принять это
И последний вопрос. В компоненте Navbar у меня есть теги привязки с href. Я вижу в руководстве по использованию router-link. Следует ли мне изменить все теги привязки с помощью router-link? Извините за слишком много вопросов
Да, если вы хотите просто изменить компонент внутри <router-view> </router-view> (в зависимости от маршрута). Это не сделает новый запрос к серверу. Если вы хотите сделать новый запрос и обновить всю страницу, используйте <a>
Идеально! Большое спасибо!
Без проблем, рады помочь :)
Вы импортировали как
welcomeи использовали его какWelcome