首先简单写一点json数据用来测试

{
    "name":"杨幂",
    "age":18,
    "gender":"女"

}

再来写Ajax接口用来在前台引入做铺垫

import {ref} from "vue"
//引入axios
import axios  from "axios";
//发送ajax请求
export default function(url:string){
    //加载状态
    const loading = ref(true)
    //加载请求信息
    const data = ref(null)
    //加载错误信息
    const errorMsg = ref("")
    //发送请求
    axios.get(url).then(response=>{
        loading.value=false
        data.value=response.data
    }).catch(error=>{
        loading.value=false
        errorMsg.value=error.message || "未知错误"
    })
    return{
        loading,
        data,
        errorMsg
    }
}

 以上 创建3个实例 分别是登录信息,请求信息,错误信心

登陆成功的话,登录信息-false,并且显示响应数据

 登陆失败的话,登录信息-false,并且显示错误信息。

<template>
  <div>
   <h2>x-{{x}} y-{{y}}</h2>
   <h2 v-if="loading">正在加载中...</h2>
   <h2 v-else-if="errorMsg">错误信息 {{errorMsg}} </h2>
   <h2 v-else></h2>
   <h2>
     <ul>
       <li> {{data.name}} </li>
       <li> {{data.age}} </li>
       <li> {{data.gender}} </li>
     </ul>
   </h2>
  </div>
</template>
<script lang="ts">
import useRequest from "./hooks/useRequest"
import { defineComponent } from 'vue';
import useMousePosition from "./hooks/useMousePosition"
export default defineComponent({
  name:'App',
  setup(){
    const{x,y} = useMousePosition()
    const{loading,data,errorMsg} = useRequest("./data/data.json")
    return {
    x,
    y,
    loading,
    data,
    errorMsg
  }
  }
 
})
</script>

以上引入 axios请求的文件,并且把请求文件中定义的数据分解出来并且return出

引入data文件中的数据,在标题h3中显示 就欧克了

 

更多推荐

Vue3.0版本发送ajax请求