【问题标题】:Trying to implement infinite scrolling with VueJS and Axios尝试用 VueJS 和 Axios 实现无限滚动
【发布时间】:2020-08-20 14:56:10
【问题描述】:

如标题所述,我正在尝试将 Vue 项目中的无限滚动实现为大学项目。

我已经通过 axios 导入了请求的 API,并希望我的应用程序检查 API 获取的页面,并在我滚动到页面底部时添加“1”。

我正在尝试使用 Observer 来做到这一点,但我认为我缺乏基础知识,因为我无法使其正常工作。

我也尝试过 vue-infinite-scroll 但是.. 好吧,我不知道为什么它不起作用,我最终删除了我试图使用它的代码行。

如果您查看我的 CodeSandbox 链接 (https://codesandbox.io/s/20082020-ldomq?file=/src/components/GamesList.vue),您会发现我正在尝试在 GamesList.vue(我请求 API 的地方)中实现滚动功能。这是sn-p的代码:

export default {
  name: "GameList",
  data() {
    return {
      list: undefined
    };
  },
  components: {
    Observer
  },
  mounted() {
    Vue.axios.get("https://api.rawg.io/api/games?page=1").then(resp => {
      this.list = resp.data.results;
    });
  },
  methods: {
    async intersected() {
      this.page++;
    }
  }
};

我希望我能给你更多的信息,如果有要求我肯定会尝试,但是我的编程知识非常有限,我不确定我能帮助你多少。对此我很抱歉。

提前谢谢你,祝你有美好的一天。

【问题讨论】:

  • 除了你的问题。您正在尝试制作一个包npmjs.com/package/vue-infinite-loading
  • 你没有写出哪里出了问题。您是否收到错误或未发送请求或发送相同的请求?

标签: javascript vue.js scroll axios


【解决方案1】:

我检查了你的代码。您可能正在尝试与本教程中的相同:https://vueschool.io/articles/vuejs-tutorials/build-an-infinite-scroll-component-using-intersection-observer-api/ 它在该教程中有效。观察者在您的代码中按预期工作,但您不对相交事件发出任何请求。 我改变了你的组件,现在它可以工作了:

export default {
  name: "GameList",
  data() {
    return {
      list: [],
      page: 1
    };
  },
  components: {
    Observer
  },
  methods: {
    async intersected() {
      const res = await fetch(
        `https://api.rawg.io/api/games?page=${this.page}&_limit=50`
      );

      this.page++;
      const items = await res.json();
      this.list = [...this.list, ...items.results];
    }
  }
};

【讨论】:

  • 尊敬的 Konowy,非常感谢您的回答。是的,我正在尝试遵循本教程!编程很难,但我很高兴有像你这样乐于助人的人。祝你一切顺利!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-13
  • 2017-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多