vueページ全体のリフレッシュを実現
5803 ワード
ページ全体をリフレッシュする必要があります.this.$router.go(0)とlocation.reload()は、この2つの方法でページ全体のリフレッシュを実現することができますが、ページに短い空白が発生する現象をもたらすため、必要に応じてvueの方法で空白のないリフレッシュを実現することができます.まずAppでvueではrouter-viewを構成する操作について、以下のようにします.
Provide injectのプロパティを利用して、必要な場所でこのメソッドを呼び出せばいいです.その後、特定のページにinject構成を追加します.具体的には、 です.
Provide injectのプロパティを利用して、必要な場所でこのメソッドを呼び出せばいいです.
<template>
<div id="app">
<router-view v-if="isRouterAlive" />
</div>
</template>
<script>
export default {
name: "App",
data() {
return {
isRouterAlive: true
};
},
provide() {
return {
reload: this.reload
};
},
methods: {
reload() {
this.isRouterAlive = false;
this.$nextTick(() => {
this.isRouterAlive = true;
});
}
}
};
</script>
<style></style>
export default {
inject: ['reload'],
methods: {
reloadPage() {
if (this.request === 2) {
this.reload();
}
},
},
}