新建一个js文件存放下面代码

 
export function request(flig = {}){ //解构
let {
url,
method = ‘GET’, //这里可以更换post啥的请求方式
data = {}, 
headers = {}
} = flig;
  return new Promise((resolve, reject) => {
    uni.request({
      url,
      method,
      data,
      header: {
        //这里如果要请求头可以填
      },
      success: (res) => {//成功返回
        if (res.statusCode >= 200 && res.statusCode < 300) {
          resolve(res.data);
        } else {
          reject(new Error(`请求失败,状态码:${res.statusCode}`));//失败返回
        }
      },
      fail: (err) => {
        reject(new Error(`请求失败:${err.message}`));
      }
    });//resolve和reject是promise的请求格式
  });
};

可以再封装一层请求,这里还是js文件

import {request} from “@/(上面你文件的名)/request.js”

方法一

const url = “https://api.oioweb.cn/api/bing”

 export function getDataList(){
return request({
url 
})
 }
 
方法二
  export function getDataList(){
  return request({
 url : “https://api.oioweb.cn/api/bing”,
 })
 }
 

然后就是主题部分,在js的位置进行引入。

const getImgApi = async ()=>{
let res = await getDataList()
console.log(res)
imaglist.value=res.result;
}//方法
getImgApi();//调用方法

展示页面

<template>
<view class=”content”>
<view class=”imag” v-for=”item in imaglist” :key=”item.date”>
<view class=”sub”>
<view class=”title”> {{item.title}}</view>
<image :src=”item.url” mode=’aspectFill’ @click=”goToimg(item)”></image>
</view>
</view>
</view>
</template>
 
<script setup>
import {
ref,
} from ‘vue’ 
import {
getDataList,
} from ‘@/api.js’
let imaglist = ref([])
// uni.request({ //不用包装
// url:’https://api.oioweb.cn/api/bing’,
// success: res =>{
// console.log(res.data.result)
// imaglist.value = res.data.result
// },
// fail: res=>{
// console.log(‘未找到地址’)
// }
// })
 
const getImgApi = async ()=>{
let res = await getDataList()
console.log(res)
imaglist.value=res.result;//这里退一层
}
getImgApi();
 
const goToimg=(item)=>{
uni.previewImage({
urls:[item.url],
current:item.url,
success() {
console.log(item.url+’/n预览成功’)
},
fail(err) {
console.log(‘预览失败’,err)
}
})
}
 
 
</script>
 
<style scoped lang=”scss”>
.content{
.imag{
background: #e0e0e0;
padding: 10rpx 0;
margin-bottom: 30rpx;
border-radius: 20rpx;
&:last-child {
      margin-bottom: 60px;
    }
 
.sub{
  display: flex;
  flex-direction: column;
      align-items: center;
  justify-content: center;
.image{
  width: 100rpx;
  height: auto;
  margin-bottom: 30rpx;
  }
.title{
        font-size: 40rpx;
font-weight: 400;
margin: 20rpx 0;
}
       }
}
}
</style>

这里的api:来自教书先生API

其中一个:https://api.oioweb.cn/api/bing,

 

咸鱼还是鱼
最后更新于 2024-09-19