You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue.js结合Axios实现点击搜索按钮触发GET请求获取API搜索结果

Vue.js点击搜索按钮触发带参GET请求实现方案

1. 调整搜索栏模板代码

你当前的模板缺少搜索按钮,需要补充点击事件绑定,修改后的代码如下:

<div id="app">
  <div class="search-wrapper">
    <input type="text" 
           class="search-bar" 
           v-model="search"
           placeholder="Search in the titles"/>
    <!-- 新增搜索按钮,绑定点击触发搜索方法 -->
    <button @click="handleSearch" class="search-btn">搜索</button>
  </div>
  <!-- 搜索结果展示区域可自行补充 -->
  <div class="result-list" v-if="items.length">
    <div v-for="item in items" :key="item.id">{{ item.title }}</div>
  </div>
</div>

2. 完善Axios请求逻辑与Vue方法

你需要把搜索关键词作为查询参数拼接到请求URL中,让接口直接返回匹配结果,不需要拉取全量数据,完整逻辑如下:

// Vue实例示例代码
new Vue({
  el: '#app',
  data() {
    return {
      search: '',
      items: []
    }
  },
  methods: {
    handleSearch() {
      // 可选:关键词为空时不发起请求,或直接清空现有结果
      if (!this.search.trim()) {
        this.items = []
        return
      }
      // 把搜索关键词编码后作为参数传入接口,示例参数名为search,可根据接口实际要求调整参数名
      axios.get(
        `https://zbeta2.mykuwaitnet.net/backend/en/api/v2/media-center/press-release/?page_size=61&type=5&search=${encodeURIComponent(this.search)}`
      )
      .then((response) => {
        this.items = response.data.results
      })
      .catch(err => {
        console.error('搜索请求失败:', err)
      })
    }
  }
})

3. 可选优化项

  • 点击搜索时添加加载状态,避免用户重复点击触发冗余请求
  • 加入防抖逻辑,300ms内多次点击只触发一次请求
  • 接口返回空结果时增加空白提示

内容的提问来源于stack exchange,提问作者Balazs Kelemen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 14:45:10