【发布时间】:2020-08-23 09:07:30
【问题描述】:
我正在从事一个大学项目,我一直在尝试实现一个搜索栏,该搜索栏从 API (https://api.rawg.io/api/games) 获取游戏名称,并在单击游戏后将用户重定向到特定页面游戏网址。现在,我希望我至少能够完成第一部分。
我创建了一个 searchbar.vue 组件并从官方 Vuetify 库中复制粘贴代码: (https://github.com/vuetifyjs/vuetify/blob/master/packages/docs/src/examples/autocompletes/simple/api.vue)
但是,如果我将 API 从他们作为示例提供的 API 更改为我需要的 API (rawg),它将不再起作用,我不知道为什么。
如何使我的搜索栏正常工作?
我提供了我目前正在工作的代码框的链接,以备不时之需: (https://codesandbox.io/s/searchbar-mtjr2?file=/src/components/searchbar.vue)
如果需要,我会尽力提供有关该问题的更多信息。
非常感谢您考虑这篇文章。
【问题讨论】:
-
Here's a working version of searchbar.vue. 搜索栏有效,但由于某种原因我无法弄清楚,搜索结果偏移到最右边,而不是停留在搜索栏下方。如果您根本看不到菜单,请查看codepen in the browser,打开检查菜单(F12)并将页面向左拖动,您应该会看到类似this的搜索结果。
-
我能想到发生这种情况的唯一原因是您有一些其他样式干扰了搜索栏,但我查看了文件并找不到任何可能干扰搜索栏的样式搜索栏。如果您自己无法找到解决方案,您可能想提出一个单独的问题。
-
@MarsNebulaSoup 首先,非常感谢您的帮助。您的代码确实有效,这很棒。然而,现在我看它,它只返回了前 20 场比赛(RAWG API 的第一页)。我的问题是:我注意到 rawg API 中有一个名为“search”的开放 API 端点(api.rawg.io/docs/#tag/games)。你认为有可能以某种方式在搜索栏中使用它吗?不幸的是,我不太了解如何正确使用端点。至于“图形”错误,我会研究一下!再次感谢您的帮助。
-
只要不是在每次击键时都执行搜索,search 参数对搜索游戏很有用。那很可能会很慢。如果您想要更多结果,您可以将
?page_size=40附加到API URL,使其看起来像https://api.rawg.io/api/games?page_size=40。当然,您可以将40更改为您想要显示的结果数。请注意,如果页面中的游戏数量增加,请求大小会随着数量的增加而变大,因此数据加载速度会变慢。 40虽然不算多,但是如果你将大小设置为1000或其他东西,它可能会变慢。 -
如果您想在 API URL 中添加任何参数,您所要做的就是在 url (
?) 之后添加一个问号。然后添加param=value等参数。用 & 号分隔多个参数 (&)。像这样的东西:api.rawg.io/api/games?page_size=40&search=Grand theft auto
标签: vue.js vuetify.js searchbar