uniapp里同一个请求在不同组件发送
时间: 2023-11-30 19:03:37 浏览: 75
可以使用uni-app提供的全局变量或者Vuex来实现同一个请求在不同组件中发送。
1. 全局变量:在main.js文件中定义一个全局变量,然后在需要发送请求的组件中调用即可。
```javascript
// main.js
import Vue from 'vue'
import App from './App'
import request from '@/utils/request'
Vue.config.productionTip = false
Vue.prototype.$http = request
App.mpType = 'app'
const app = new Vue({
...App
})
app.$mount()
// 在需要发送请求的组件中
export default {
methods: {
async getData() {
const res = await this.$http.get('/api/data')
console.log(res)
}
}
}
```
2. Vuex:在store中定义一个action,组件中通过dispatch来触发该action发送请求。
```javascript
// store/index.js
import Vue from 'vue'
import Vuex from 'vuex'
import request from '@/utils/request'
Vue.use(Vuex)
const store = new Vuex.Store({
state: {},
mutations: {},
actions: {
async getData(context) {
const res = await request.get('/api/data')
console.log(res)
}
}
})
export default store
// 在需要发送请求的组件中
import { mapActions } from 'vuex'
export default {
methods: {
...mapActions(['getData']),
async getDataByVuex() {
this.getData()
}
}
}
```
阅读全文