37 lines
540 B
Vue
37 lines
540 B
Vue
|
<script>
|
||
|
export default {
|
||
|
provide() {
|
||
|
return {
|
||
|
posts: this.posts,
|
||
|
};
|
||
|
},
|
||
|
mounted() {
|
||
|
getPosts().then((res) => {
|
||
|
this.posts = res;
|
||
|
this.loading = false;
|
||
|
});
|
||
|
},
|
||
|
data() {
|
||
|
return {
|
||
|
posts: [],
|
||
|
loading: false,
|
||
|
};
|
||
|
},
|
||
|
methods: {},
|
||
|
};
|
||
|
</script>
|
||
|
|
||
|
<template>
|
||
|
<div v-if="loading">
|
||
|
<NuxtLoadingIndicator />
|
||
|
<h1>Loading...</h1>
|
||
|
</div>
|
||
|
|
||
|
<div v-else>
|
||
|
{{ posts?.length ?? 0 }}
|
||
|
<ul>
|
||
|
<post-list-item :posts="posts"></post-list-item>
|
||
|
</ul>
|
||
|
</div>
|
||
|
</template>
|