对 axios 请求使用动态参数

Posted

技术标签:

【中文标题】对 axios 请求使用动态参数【英文标题】:use dynamic params for axios requests 【发布时间】:2020-02-19 16:59:25 【问题描述】:
axios.get("/api/session/" + this.roomId)

上面是来自我的 axios 调用的 sn-p,它使用我的 api.php 路由('/api/session/id 通过控制器加载请求的特定房间 => /api/session/3 是房间 3 )。

目前,这个 sn-p 是硬编码的,并且始终使用整数 1 表示“this.roomId”。 我这样做是为了检查我的 vue 是否工作正常。

我现在的问题是,我如何为道具 roomId 使用动态参数?

所以我总是可以说类似的话

.get/.post('url', $id) ?

【问题讨论】:

【参考方案1】:

如果您将 roomId 作为 prop 传递给组件,那么您需要处理父组件中的更改。为此,我需要更多关于房间 ID 来自何处以及如何选择房间 ID 的上下文。

如果您关闭了这部分,那么您需要观察 roomId 属性的变化,并在数据发生变化时重新获取数据。你可以在你的房间组件中做这样的事情:

<script>
import axios from 'axios'

const props: 
  roomId: 
    type: Number,
    required: true
  


export default 
  props,
  data() 
    return 
      room: null
    
  ,
  methods: 
    async fetchRoom() 
     try 
       const response = await axios.get(`/api/session/$this.roomId`)
       this.room = response.data
      catch (err) 
       // - handle error
     
    
  ,
  watch: 
    roomId: 
      immediate: true // so it's executed when component is created
      handler: function () 
        this.fetchRoom()
      
    
  

</script>

【讨论】:

好的,你需要什么信息?目前我只使用我在 app.js 中注册的不同单个组件 您将需要一些包装器组件,它将 roomId 道具传递给您的房间组件,并有办法在那里更改 roomId。例如,使用某种下拉菜单。 你能给我一个链接或类似的东西,这样我就可以得到一个教程吗?我使用 Laravel 和 PHP 的时间不长 如果你在 Laravel 中,你可以遍历你的房间数组并将房间 ID 传递给 vue 组件:&lt;room room-id=" $room-&gt;id "&gt;&lt;/room&gt;laravel.com/docs/6.x/blade#loops

以上是关于对 axios 请求使用动态参数的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Javascript 中的动态链接数组发出多个 Axios 请求?

在vue中使用axios发送post请求,参数方式

Vue使用axios发送get请求并携带参数

如何根据动态创建的请求数组执行多个axios get请求

axios请求后的VUE JS动态背景图片

axios请求requestBody和formData