uniapp 网络请求 get请求

网络请求

在uni中可以调用uni.request方法进行请求网络请求

需要注意的是:在小程序中网络相关的API在使用需要配置域名白名单。

官方文档

如果发起请求就调用我们这个uni.request(OBJECT)

发送get请求


这里的sendReq就是来配置发送请求的

里面定义一个方法

sendReq(){
    uni.request({     
	})
}

首先可以配置一个url

参数名 类型 必填 默认值 说明 平台差异说明
url String 开发者服务器接口地址

这里就是我们要请求的接口地址

拿我这边随便接的地址

sendReq(){
    uni.request({
    	url:"http://localhost:8080/selectUser?id=0"
	})
}

还有一个最重要的:

参数名 类型 必填 默认值 说明 平台差异说明
success Function 收到开发者服务器成功返回的回调函数

success就是我们请求成功后会触发的回调函数

里面的参数有一个res

sendReq(){
    uni.request({
    	url:"http://localhost:8080/selectUser?id=0",
        success(res){
            console.log(res)//打印一下我们回调函数传过来的值
        }
	})
}

其他可以参考官方文档

data:

要想从回调函数里面拿到传过来的值,那你必须得清楚this:

success()回调函数里的thisundefind

如果在回调函数里把能获取到的res.data的值给外部想进来的this.name是不太现实的(报错name is undefind)

但是在点击事件里,在uni.request外你去尝试一下输出一下:

console.log(this)

我这里出来的结果是VueComponent的实例对象,那我们把这个this赋给一个变量that让它进入回调函数里面把里面获取到的res.data.name(我数据库里面的是name,不清楚可以直接console.log(res)console.log(res.data)查看里面的值)

要知道VueComponent实例对象就是Vue实例对象的孪生兄弟中的弟弟,VueComponent实例对象对比Vue实例对象就是少一个确定为那个容器服务的el(或者说是$mount)和data只能写成函数式,所以Vue实例对象也是有_data的,里面存的就是组件中的data里的属性。所以我们只要在回调函数里面写成:

that._data.name = res.data.name

这样VueComponent里面的data就是传过来属性的值;

整体回调函数:

sendReq(){
    // console.log(this)//VueComponent实例对象
    let that = this
    uni.request({
        url:"http://localhost:8080/selectUser?id=0",
        success(res){
            console.log(res)
            console.log(res.data.name)
            //console.log(this)//undefined
            //console.log(that)//VueComponent实例对象
            that._data.name = res.data.name
        },
    })
}

这个案例的.vue文件






你可能感兴趣的:(#,uni-app,网络,vue.js,javascript)