【问题标题】:Display RSS Feed on front end在前端显示 RSS 提要
【发布时间】:2020-02-25 12:05:24
【问题描述】:

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

我创建了一个“Feed.vue”组件并希望在“App.vue”上显示提要。我的后端是 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】:

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

    你的代码是这样的:

    <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>
    

    【讨论】:

    • 谢谢。另外我在哪里放置到套接字代码的连接?我已经在js中完成了,但想将其转换为vue。我已经编辑了我的帖子(见上文):)
    • 无处可去,Vue 不建议你处理 DOM。第一个代码是正确的。
    • 这个答案解决了你的问题吗?请接受此答案并关闭问题。这将对其他人有所帮助。
    猜你喜欢
    • 2020-06-06
    • 2011-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-26
    • 1970-01-01
    • 2015-12-01
    相关资源
    最近更新 更多