요즘은 VueJs으로 첫 걸음을 내딛었으며 vue-router이 있고 일부 구성 요소는 vue-cli
을 사용하여 올바른 비계를 얻었습니다.이전 작업 구성 요소로 돌아 가면 흰 페이지가 나타납니다.
<template>
<section class="hero is-small is-info">
<div class="hero-head">
<nav class="navbar">
<div class="navbar-brand">
<span class="title is-3" style="margin: 10px 0 0 32px">Title</span>
</div>
<div class="navbar-menu">
<div class="navbar-end">
<router-link to="welcome" class="navbar-item" active-class="is-active">
<span class="icon is-small"><i class="fa fa-home"></i></span>
</router-link>
<router-link to="newmails" class="navbar-item" active-class="is-active">
<span class="icon is-small"><i class="fa fa-envelope-open"></i></span>
</router-link>
<router-link to="settings" class="navbar-item" active-class="is-active">
<span class="icon is-small"><i class="fa fa-cogs"></i></span>
</router-link>
<router-link to="bugreport" class="navbar-item" active-class="is-active">
<span class="icon is-small"><i class="fa fa-bug"></i></span>
</router-link>
</div>
</div>
</nav>
</div>
</section>
</template>
<script>
export default {
};
</script>
당신이 볼 수 있듯이, 서로 다른보기 사이 탐색을 통해 이루어집니다 다음과 같이
import Vue from 'vue';
import Router from 'vue-router';
import Welcome from '@/components/Welcome';
import NewMails from '@/components/NewMails';
import Settings from '@/components/Settings';
import Bugreport from '@/components/Bugreport';
Vue.use(Router);
export default new Router({
routes: [
{
path: '/',
name: 'welcome',
component: Welcome,
},
{
path: '/newmails',
name: 'newmails',
component: NewMails,
},
{
path: '/settings',
name: 'settings',
component: Settings,
},
{
path: '/bugreport',
name: 'bugreport',
component: Bugreport,
},
],
});
내가 내비게이션 구성 요소를 내장 다음과 같이
나는 라우터의 정의 (./router/index.js
)를 확장 라우터는 router-link
element을 사용합니다.
응용 프로그램이로드되면 /
경로가 활성화되고 Welcome
구성 요소가 원하는대로 DOM에 주입됩니다. newmails
사이의 전환 외에도 settings
및 bugreport
보기 resp. 구성 요소가 꽤 잘 작동합니다.
그러나 경로의 welcome
경로를 다시 열려고하면 원하는 구성 요소가 제대로 주입되지 않습니다. 동일한 구성 요소를 처음 본 모습에서 볼 수 있었던 내용 대신, 흰색/빈 페이지 만 표시됩니다. 응용 프로그램의 DOM을 검사
<div id="app"><!----></div>
내가 언급 한 빈 페이지에 이르는 얻을 모든 인 구성 요소의 내용 대신, 주입하지 않는 것을 알 수있다.
개발 모드에서 실행 중이지만 VueJs는 브라우저 콘솔에 오류 메시지를 기록하지 않으므로이 시점에서 디버깅을 조금 더 어렵게 만듭니다. Vue에서 유효하지 않은 HTML을 렌더링 할 때 빈 페이지가 표시된다는 유사한 문제가 발생합니다. 그래서 결함이있는 구성 요소를 다른 구성 요소와 비교하여 큰 차이점을 찾을 수 없었습니다. 또한 구성 요소 자체를 예 : 경로의 정의를 채택하면 다음과 같습니다.
export default new Router({
routes: [
{
path: '/',
name: 'welcome',
component: Settings,
},
{
path: '/newmails',
name: 'newmails',
component: NewMails,
},
{
path: '/settings',
name: 'settings',
component: Settings,
},
{
path: '/bugreport',
name: 'bugreport',
component: Bugreport,
},
],
});
문자 그대로 동일한 효과가 발생합니다. 구성 요소는 처음 방문시 올바르게 렌더링되고 삽입되며 다른 경로 /보기/구성 요소에서 돌아올 때 오류가 <!---->
이됩니다.
다른 모든 경로가 원하는대로 작동하기 때문에 내가 뭘 잘못하고 있니?
어떻게 다시'welcome' 경로로 이동된다? 검색 주소창의 URL을 수동으로 변경 하시거나 '라우터 - 링크'를 클릭 하시겠습니까? – Phil
@ Phil : 네, 그게 바로 제가하고 싶었던 것입니다. 그러나 [Richard 's] (https://stackoverflow.com/a/47007715/3991125)와 [Eric 's answer] (https://stackoverflow.com/a/47007230/3991125)를 [리디렉션 문] (https : //router.vuejs.org/en/essentials/redirect-and-alias.html)가 원하는 동작을하게됩니다. – albert