Маршрутизатор в Vue не работает

#html #vue.js #vue-router

Вопрос:

Я пробовал 100 раз, но мой маршрутизатор вообще не работает! Я не могу просто перемещаться или переключаться на разные страницы в моем проекте vue. Я выполнил все шаги, приведенные в ссылке https://www.thepolyglotdeveloper.com/2017/11/router-navigate-pages-vuejs-application/ тоже, но без изменений.

Вот мои коды:

main.js

 import Vue from 'vue'
import App from './App.vue'
import "bootstrap";
import "bootstrap/dist/css/bootstrap.min.css";
//import router from '../router'
//import VueRouter from 'vue-router'

Vue.config.productionTip = false

new Vue({
render: h => h(App),
}).$mount('#app')
 

index.js

 import Vue from 'vue'
import Router from 'vue-router'
import Page1 from '@/components/page1'
import Page2 from '@/components/page2'

Vue.use(Router)

export default new Router({
    routes: [
        {
            path: "/",
            redirect: {
                name: "Page1"
            }
        },
        {
            path: '/page1',
            name: 'Page1',
            component: Page1
        },
        {
            path: '/page2',
            name: 'Page2',
            component: Page2
        }
    ]
})
 

Теперь вот пример одной из моих страниц, адрес которой, как я ожидаю, будет localhost:8080/страница 1, но она не приходит..

 <template>
<div class="hello">
    <h1>{{ msg }}</h1>
     <router-link to="/page2">Navigate to Page2</router-link>
</div>
</template>

<script>
    export default {
        name: 'Page1',
        data () {
            return {
                msg: 'Welcome to Your Vue.js App'
            }
        }
    }
</script>

<style scoped>
    h1, h2 {
        font-weight: normal;
    }

    ul {
        list-style-type: none;
        padding: 0;
    }

    li {
        display: inline-block;
        margin: 0 10px;
    }

    a {
        color: #42b983;
    }
</style>
 

КТО-НИБУДЬ, ПОЖАЛУЙСТА, СКАЖИТЕ МНЕ, ЧТО ДЕЛАТЬ

Комментарии:

1. можете ли вы попробовать добавить <представление маршрутизатора/> в шаблон компонента внутри app.vue??

Ответ №1:

Вы main.js должны выглядеть так:

 import Vue from 'vue'
import App from './App.vue'
import "bootstrap";
import "bootstrap/dist/css/bootstrap.min.css";
import router from '../router';

Vue.config.productionTip = false;

new Vue({
  render: h => h(App),
  router,
}).$mount('#app')
 

Также в App.vue вас должно быть <RouterView /> :

 <template>
  <RouterView />
</template>
 

Источник: https://router.vuejs.org/guide/#html