在前端显示RSS Feed

问题描述 投票:0回答:1

我想在我的Vue.js应用程序上显示此Google Alert RSS Feed(https://www.google.ie/alerts/feeds/10663948362751557705/4511034072220974544)中的一系列文章。

我已经创建了一个“ Feed.vue”组件,并希望在“ App.vue”上显示该feed。我的后端是Express.js。首先,我什至做到了这一点?我使用Javascript进行此操作,但想使用Vue.js作为前端。

由于某种原因,我遇到关于我的标题的错误消息:enter image description here

我的代码:

Feed.vue

 <template>
   <li>
      {{feed.title}}
   </li>
</template>

<script>
   export default {
      props: ["feed"]
   }
</script>

App.vue

    <template>
  <div id="app">
<Feed></Feed>
   <ul>
      <feed v-for="feed in feeds" :feed="feed" :key="feed.title"></feed>
   </ul>
   </div>
</template>

<script>
import io from 'socket.io-client'
   import Feed from './components/Feed.vue'
   export default {
      components: {
         Feed
      },
      data () {
         return {
            feeds: []
         }
      },
      mounted() {
         this.subscribeToFeed();
      },
      methods: {
         subscribeToFeed() {
            const socket = io();
            socket.on('feed', data => {
               data.feed.entries().forEach(feed => {
                  this.feeds.push(feed);
               });
            });
         }
      }
   }
</script>

我将其放置在代码中的什么位置?

   const socket = io();
    socket.on('feed', data => {
      for (const [i, item] of data.feed.entries()) {
        let itemContainer = $('<span></span>')
          .addClass('feed__content')
          .append(`<p>${i + 1}) ${item.title}<p>`)
          .append(`<p>${item.link}</p>`)
          .appendTo('.feed');
      }
    });
javascript node.js api express vue.js
1个回答
0
投票

发生此错误,因为您在Feed的第3行中声明了App.vue组件而没有属性。

您的代码就是这样:

<template>
  <div id="app">
    <Feed></Feed> <!-- YOU NEED REMOVE THIS LINE -->
    <ul>
      <feed v-for="feed in feeds" :feed="feed" :key="feed.title"></feed>
     </ul>
  </div>
</template>

正确的代码是:

<template>
  <div id="app">
    <ul>
      <feed v-for="feed in feeds" :feed="feed" :key="feed.title"></feed>
     </ul>
  </div>
</template>
© www.soinside.com 2019 - 2024. All rights reserved.