Vue3在Setup中使用axios请求获取的值方式

 更新时间:2022年06月24日 11:02:50   作者:3v3n1ng  
这篇文章主要介绍了Vue3在Setup中使用axios请求获取的值方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Setup中使用axios请求获取的值

上次我们使用axios给项目搞上了网络请求,从此项目数据不再是静态的。对于后端返回的值如何赋值给data里面的变量并且赋予数据响应式,写此日记记录踩坑过程。

axios返回的项目数据无法通过函数返回值返回,如何获取返回值呢?

<script>
import {  defineComponent, reactive, onMounted, toRefs, ref } from "vue";
import { getProjectDetailAPI } from "@/api/api";
export default defineComponent({
  setup() {
    //这里定义一个结构体,用来保存项目信息
    var Data = reactive({
      projectData: [],
      projectDetailData: [],
    });
    function GetProjectDetail(obj) {
      const pid = obj.pid;
      getProjectDetailAPI({ ProjectID: pid })
        .then((result) => {
          /*Data.projectDetailData这个变量是我们定义的reactive对象
          所以你打印出来他是一个数据代理的实例,并非array(),所以想要把
          获取的报文数据复制到里面,需要使用深拷贝*/
          Data.projectDetailData = JSON.parse(JSON.stringify(result.data));
        })
        .catch((err) => {
          console.log(err);
        });
    }
    //挂载后调用函数获取项目数据
    onMounted(() => {
      GetProjectData();
    });
    return {
      //解构Data结构体,让模板可以直接调用Data里面的对象
      ...toRefs(Data),
    };
  },
});
</script>

Vue3+Setup使用知识点

<script lang="ts" setup>
import {getCoupon} from './request';//request里面包含接口,此处是引入getCoupon这个接口
import { onMounted, reactive, ref, getCurrentInstance, onActivated } from 'vue';
import { useRoute, useRouter } from 'vue-router';
const route = useRoute();//获取路由参数
const router = useRouter();//获取路由对象
const emit = defineEmits(['downStep']);//初始化emit调用的方法
const props = defineProps({//初始化prop内部参数
	id:Number,
	leave:{
		type:String,//类型
		default:'一级'//默认参数
	}
});
let name = ref('');//ref初始化普通参数
let obj1 = reactive({//ref初始化复杂对象参数
      name: "老王",
      age: "50",
      test: {
        salary: 3000,
        year: 1,
      },
    });
let obj2 = ref({//ref也可初始化复杂对象参数
      name: "老王",
      age: "50",
      test: {
        salary: 3000,
        year: 1,
      },
    }); 
//ref与reactive都可初始化复杂对象参数,但是使用上不同
console.log(obj1.name);
console.log(obj2.value.name);   
console.log(name.value);//ref使用需要.value,reactive则不用      
watch(name, (newVal, oldValue) => {//监听单个基本数据类型(ref)
     console.log(newVal, oldValue);
 });    
const getList = async (a)=>{//async函数
	let data = await getCoupon({a});
};
const getBtnClick =()=>{//普通函数
	emit('downStep',1);//对比vue2中的this.$emit
	console.log(props.id);//使用props中的id
}
const back = ()=>{
	//router.push("/aa");//跳转其他页面
	router.push({url:'/aa',query:{name:'测试'}});//带参跳转
	//router.replace("/aa")//
}
onMounted(() => {//页面初始化时只请求一次
 //初始化生命周期,一般初始化参数请求时将获取数据接口写在此处
 let a = route.query.a;//获取跳转页面时传递的参数a
 getList(a); 
});
onActivated(() => {//页面每次进入时都请求一次,当使用keep-alive并且每次进入页面都需调用一次时使用
 let a = route.query.a;//获取跳转页面时传递的参数a
 getList(a); 
});
</script>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • VUE实现移动端列表筛选功能

    VUE实现移动端列表筛选功能

    这篇文章主要介绍了VUE实现移动端列表筛选功能,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • Vue前端表格导出Excel文件的图文教程

    Vue前端表格导出Excel文件的图文教程

    我们在开发的时候会经常用的导出excel表格功能,刚好自己开发有遇到,就记录一下,下面这篇文章主要给大家介绍了关于Vue前端表格导出Excel文件的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-04-04
  • vue+springboot图片上传和显示的示例代码

    vue+springboot图片上传和显示的示例代码

    这篇文章主要介绍了vue+springboot图片上传和显示的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • vue 实现动态路由的方法

    vue 实现动态路由的方法

    这篇文章主要介绍了vue 实现动态路由的方法,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • 浅谈sass在vue注意的地方

    浅谈sass在vue注意的地方

    下面小编就为大家带来一篇浅谈sass在vue注意的地方。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • Vue 实现从小到大的横向滑动效果详解

    Vue 实现从小到大的横向滑动效果详解

    这篇文章主要介绍了Vue 实现从小到大的横向滑动效果,结合实例形式详细分析了vue.js横向渐变滑动效果的实现步骤、相关操作技巧与注意事项,需要的朋友可以参考下
    2019-10-10
  • vue各种时间类型转换方法例子

    vue各种时间类型转换方法例子

    前端前后端接⼝处理时经常会遇到需要转换不同时间格式的情况,下面这篇文章主要给大家介绍了关于vue各种时间类型转换的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-06-06
  • 如何使用sm4js进行加密和国密sm4总结

    如何使用sm4js进行加密和国密sm4总结

    近期由于公司项目的需要开始研究国密SM4加密,下面这篇文章主要给大家介绍了关于如何使用sm4js进行加密和国密sm4的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-04-04
  • 过滤器vue.filters的使用方法实现

    过滤器vue.filters的使用方法实现

    这篇文章主要介绍了过滤器vue.filters的使用方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • vue实现在线翻译功能

    vue实现在线翻译功能

    这篇文章主要为大家详细介绍了vue实现在线翻译功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-09-09

最新评论