1
VueJSを初めて使用し、コンポーネントで作業していて、対応するルートがロードされる前にAPIからデータを取得したい。それだけでコンポーネントが読み込まれます。コンポーネントが作成されたら、最初のAPIから取得したデータを入力として受け取る別のAPIを呼び出す必要があります。ここに私のコンポーネントスクリプトは次のとおりです。VueJS:コンポーネントをロードする前後のデータを取得する
export default {
name: 'login',
data() {
return {
categories: []
}
},
created() {
// it gives length = 0 but it should have been categories.length
console.log(this.categories.length);
// Call getImage method
loginService.getImage(this.categories.length)
.then(res => {
console.log('Images fetched');
})
},
beforeRouteEnter (to, from, next) {
loginService.getCategories().then((res) => {
next(vm => {
vm.categories = res.data.categories;
});
}, (error) => {
console.log('Error: ', error);
next(error);
})
},
methods: {}
}
私はmounted
フックを使用してみましたが、それは動作しません。しかし、watch
のcategories
プロパティと呼び出しフェッチイメージメソッドを使用すると動作します。私はウォッチャーを使うのが最善のアプローチだとは思わない。何かご意見は?
を処理前のコンパイラを使用している場合、私はあなたの答えに感謝しかし、それも 'created'フックで働いていない理由を私はまだ明確ではないです。 – Aosis