Я пытаюсь изучить Vue.js (2), создав простую программу чтения RSS. Я перешел мимо начального представления одного компонента и теперь пытаюсь преобразовать мой код в компонент (RSSFeed) с повторяющимися подкомпонентами (FeedPost).
App.vue
|
|
RSSFeed.vue
|
|
FeedPost.vue
Мне удалось связать компонент make с повторяющимся элементом, но не могу правильно отобразить данные. В настоящее время отрендеренный HTML показывает следующий результат:
<ol data-v-f1de79a0="" id="feed">
<li data-v-f1de79a0="" post="[object Object]" class="RSSFeed"></li>
<li data-v-f1de79a0="" post="[object Object]" class="RSSFeed"></li>
...
<li data-v-f1de79a0="" post="[object Object]" class="RSSFeed"></li>
</ol>
Я полагаю, что ошибка связана с моим элементом props, но я не уверен, куда я отклонился от Руководства по основам компонентов . Сокращенная версия JSON, возвращаемая моим сервером приложений: здесь .
RSSFeed.vue
<template>
<ol id="feed">
<li class="RSSFeed"
v-for="item in items"
v-bind:key="item.indexOf"
v-bind:post="item">
</li>
</ol>
</template>
<script>
import axios from 'axios'
import Post from './Post'
export default {
name: 'RSSFeed',
props: {Post},
data () {
return {
items: [],
errors: []
}
},
created () {
axios.get(`http://localhost:5000/rss/api/v1.0/feed`)
.then(response => {
// JSON responses are automatically parsed.
this.items = response.data.rss.channel.item
})
.catch(e => {
this.errors.push(e)
})
}
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
</style>
Post.vue
<template>
<div id="post">
{{post.title}}
{{post.pubDate}}
{{description}}
{{link}}
</div>
</template>
<script>
export default {
name: 'Post',
prop: ['post']
}
</script>
<style scoped>
</style>