私は最近vueの作業を開始しました。単純なページを作成しましたが、一度ロードされたコンポーネントがキャッシュされていないことに気付きました。例えば、下のリンク(これは私が取り組んでいるものです)youtube videosロードに時間がかかります。他のリンクをクリックして動画に戻ってきた場合は、再び読み込まれます。Vueルータはキープアライブを使用して特定のコンポーネントをキャッシュしますか?
コンポーネントをキャッシュすることは可能ですか?好ましくは1
によって、それらの代わりに、1のすべてがここに私のVUEです:
import VueRouter from 'vue-router';
import Create from '../components/homepage/create.vue';
import How from '../components/homepage/how.vue';
import About from '../components/homepage/about.vue';
import Youtube from '../components/homepage/youtube.vue';
import Navigation from '../components/homeNavigation.vue';
import Login from '../components/auth/login.vue';
import Register from '../components/auth/register.vue';
const routes = [
{ path: '/create', component: Create },
{ path: '/how', component: How },
{ path: '/about', component: About},
{ name: 'youtube', path: '/youtube', component: Youtube},
{ path: '/login', component: Login},
{ path: '/register', component: Register},
];
Vue.use(VueRouter);
Vue.component('navigation', Navigation);
const router = new VueRouter({
routes,
});
new Vue({
el: '#app',
router,
updated: function() {
Pace.restart()
},
mounted: function() {
Pace.restart()
}
});
ビュー:
<div id="app">
<navigation></navigation>
<transition appear name="slide-fade" mode="in-out">
<keep-alive include='youtube'>
<router-view></router-view>
</keep-alive>
</transition>
</div>
マイアプリ:
http://b2750916.ngrok.io/#/youtube
私はそれを修正するかどうかはわかりませんが、[v-once](https://vuejs.org/v2/api/#v-once)指令 – Thomasleveil
にお試しください動画以外のもの(おそらく「iframeされている」)と一緒に。キープアライブはコンポーネントデータをキャッシュする必要があるためです。しかし、データによって私はYTのビデオを意味するものではありません...詳細を取得する可能性はありますか? youtubeのコンポーネントは何のように? – nettutvikler
あなたのYoutubeコンポーネントの名前プロパティは「youtube」ですか?https://stackoverflow.com/questions/43116616/keep-alive-on-a-single-route-instaead-of-all-routes-in-router -view/43131202#43131202 –