1 回答

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超4個(gè)贊
問題是您通過Background.vue. 不要那樣做。將其包含在App.vue.
當(dāng)路由更改時(shí),<router-view />的內(nèi)容將填充該路由組件的全新實(shí)例(在(或) 中的routes數(shù)組中設(shè)置)。所以,而不是:router/index.ts.js
<template>
<div id="app">
<router-view></router-view>
</div>
</template>
...你App.vue應(yīng)該包含:
<template>
<div id="app">
<navigation />
<router-view />
</div>
</template>
如果您不想在頁面更改時(shí)重新呈現(xiàn)頁面的任何其他部分(某些側(cè)邊欄,可能是頁腳),也請(qǐng)將它們包含在App.vue. 因此,使用頁腳和側(cè)邊欄,它可能看起來像:
<template>
<div id="app">
<header>
<navigation />
</header>
<main>
<sidebar />
<router-view />
</main>
<footer />
</div>
</template>
當(dāng)路線更改時(shí),只會(huì)<router-view />重新渲染,并相應(yīng)地執(zhí)行路線上設(shè)置的動(dòng)畫。直接放置的其他布局元素App.vue將不會(huì)重新渲染。顯然,如果您根據(jù)當(dāng)前路由動(dòng)態(tài)更改它們的內(nèi)容,這些部分將會(huì)更新,但它們的基本 DOM 元素將保持不變。
隱含地,您應(yīng)該<navigation />從您的視圖中刪除以及您決定直接放入的任何其他內(nèi)容App.vue。
添加回答
舉報(bào)