mirror of
https://github.com/nuxt/nuxt.git
synced 2024-11-23 14:15:13 +00:00
start async data in sub-components
This commit is contained in:
parent
b96baeb555
commit
2a9519e720
45
examples/async-data/components/Post.vue
Normal file
45
examples/async-data/components/Post.vue
Normal file
@ -0,0 +1,45 @@
|
||||
<template>
|
||||
<div class="post">
|
||||
<h1>{{ title }}</h1>
|
||||
<pre>{{ content }}</pre>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import axios from 'axios'
|
||||
|
||||
export default {
|
||||
name: 'post',
|
||||
props: ['postId'],
|
||||
created () {
|
||||
// if (this.$nuxt.hasComponentData(this)) {
|
||||
// let data = this.$nuxt.getComponentData(this)
|
||||
// this.title = data.title
|
||||
// this.content = data.content
|
||||
// return
|
||||
// }
|
||||
let promise = axios.get(`https://jsonplaceholder.typicode.com/posts/${this.postId}`)
|
||||
promise.then((res) => {
|
||||
console.log(res.data)
|
||||
this.title = res.data.title
|
||||
this.content = res.data.body
|
||||
})
|
||||
this.$nuxt.addComponentData(this, promise)
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
title: '',
|
||||
content: ''
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.post {
|
||||
width: 50%;
|
||||
border: 1px #ddd solid;
|
||||
margin: auto;
|
||||
padding: 30px;
|
||||
}
|
||||
</style>
|
@ -2,12 +2,15 @@
|
||||
<template>
|
||||
<div>
|
||||
<p>{{ post.title }}!</p>
|
||||
<post post-id="1" />
|
||||
<post post-id="2" />
|
||||
<p><nuxt-link to="/">Back home</nuxt-link></p>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
const axios = require('axios')
|
||||
import Post from '~components/post'
|
||||
|
||||
export default {
|
||||
data ({ req }) {
|
||||
@ -21,6 +24,9 @@ export default {
|
||||
return {
|
||||
title: this.post.title
|
||||
}
|
||||
},
|
||||
components: {
|
||||
Post
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
Loading…
Reference in New Issue
Block a user