亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Vue3在Setup中使用axios請求獲取的值方式

 更新時間:2022年06月24日 11:02:50   作者:3v3n1ng  
這篇文章主要介紹了Vue3在Setup中使用axios請求獲取的值方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Setup中使用axios請求獲取的值

上次我們使用axios給項目搞上了網(wǎng)絡(luò)請求,從此項目數(shù)據(jù)不再是靜態(tài)的。對于后端返回的值如何賦值給data里面的變量并且賦予數(shù)據(jù)響應(yīng)式,寫此日記記錄踩坑過程。

axios返回的項目數(shù)據(jù)無法通過函數(shù)返回值返回,如何獲取返回值呢?

<script>
import {  defineComponent, reactive, onMounted, toRefs, ref } from "vue";
import { getProjectDetailAPI } from "@/api/api";
export default defineComponent({
  setup() {
    //這里定義一個結(jié)構(gòu)體,用來保存項目信息
    var Data = reactive({
      projectData: [],
      projectDetailData: [],
    });
    function GetProjectDetail(obj) {
      const pid = obj.pid;
      getProjectDetailAPI({ ProjectID: pid })
        .then((result) => {
          /*Data.projectDetailData這個變量是我們定義的reactive對象
          所以你打印出來他是一個數(shù)據(jù)代理的實例,并非array(),所以想要把
          獲取的報文數(shù)據(jù)復(fù)制到里面,需要使用深拷貝*/
          Data.projectDetailData = JSON.parse(JSON.stringify(result.data));
        })
        .catch((err) => {
          console.log(err);
        });
    }
    //掛載后調(diào)用函數(shù)獲取項目數(shù)據(jù)
    onMounted(() => {
      GetProjectData();
    });
    return {
      //解構(gòu)Data結(jié)構(gòu)體,讓模板可以直接調(diào)用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();//獲取路由參數(shù)
const router = useRouter();//獲取路由對象
const emit = defineEmits(['downStep']);//初始化emit調(diào)用的方法
const props = defineProps({//初始化prop內(nèi)部參數(shù)
	id:Number,
	leave:{
		type:String,//類型
		default:'一級'//默認參數(shù)
	}
});
let name = ref('');//ref初始化普通參數(shù)
let obj1 = reactive({//ref初始化復(fù)雜對象參數(shù)
      name: "老王",
      age: "50",
      test: {
        salary: 3000,
        year: 1,
      },
    });
let obj2 = ref({//ref也可初始化復(fù)雜對象參數(shù)
      name: "老王",
      age: "50",
      test: {
        salary: 3000,
        year: 1,
      },
    }); 
//ref與reactive都可初始化復(fù)雜對象參數(shù),但是使用上不同
console.log(obj1.name);
console.log(obj2.value.name);   
console.log(name.value);//ref使用需要.value,reactive則不用      
watch(name, (newVal, oldValue) => {//監(jiān)聽單個基本數(shù)據(jù)類型(ref)
     console.log(newVal, oldValue);
 });    
const getList = async (a)=>{//async函數(shù)
	let data = await getCoupon({a});
};
const getBtnClick =()=>{//普通函數(shù)
	emit('downStep',1);//對比vue2中的this.$emit
	console.log(props.id);//使用props中的id
}
const back = ()=>{
	//router.push("/aa");//跳轉(zhuǎn)其他頁面
	router.push({url:'/aa',query:{name:'測試'}});//帶參跳轉(zhuǎn)
	//router.replace("/aa")//
}
onMounted(() => {//頁面初始化時只請求一次
 //初始化生命周期,一般初始化參數(shù)請求時將獲取數(shù)據(jù)接口寫在此處
 let a = route.query.a;//獲取跳轉(zhuǎn)頁面時傳遞的參數(shù)a
 getList(a); 
});
onActivated(() => {//頁面每次進入時都請求一次,當使用keep-alive并且每次進入頁面都需調(diào)用一次時使用
 let a = route.query.a;//獲取跳轉(zhuǎn)頁面時傳遞的參數(shù)a
 getList(a); 
});
</script>

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • antd vue v-decorator的取值與賦值問題

    antd vue v-decorator的取值與賦值問題

    這篇文章主要介紹了antd vue v-decorator的取值與賦值問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • vue-i18n結(jié)合Element-ui的配置方法

    vue-i18n結(jié)合Element-ui的配置方法

    這篇文章主要介紹了vue-i18n結(jié)合Element-ui的配置方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05
  • vue+echarts圖表的基本使用步驟總結(jié)

    vue+echarts圖表的基本使用步驟總結(jié)

    這篇文章主要給大家介紹了關(guān)于vue+echarts圖表的基本使用步驟,Echarts是一款基于JavaScript的開源可視化圖表庫,而Vue是一種流行的JavaScript框架,用于構(gòu)建用戶界,需要的朋友可以參考下
    2023-11-11
  • 解決vue-cli@3.xx安裝不成功的問題及搭建ts-vue項目

    解決vue-cli@3.xx安裝不成功的問題及搭建ts-vue項目

    這篇文章主要介紹了解決vue-cli@3.xx安裝不成功的問題及搭建ts-vue項目.文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • 如何本地運行vue?dist文件

    如何本地運行vue?dist文件

    這篇文章主要介紹了如何本地運行vue?dist文件,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • vue.js默認路由不加載linkActiveClass問題的解決方法

    vue.js默認路由不加載linkActiveClass問題的解決方法

    這篇文章主要給大家介紹了關(guān)于vue.js默認路由不加載linkActiveClass問題的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起看看吧。
    2017-12-12
  • vue項目API接口get請求傳遞參數(shù)方式

    vue項目API接口get請求傳遞參數(shù)方式

    這篇文章主要介紹了vue項目API接口get請求傳遞參數(shù)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • vue3中使用jsx的實現(xiàn)步驟

    vue3中使用jsx的實現(xiàn)步驟

    本文主要介紹了vue3中使用jsx的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • Vue.js添加組件操作示例

    Vue.js添加組件操作示例

    這篇文章主要介紹了Vue.js添加組件操作,結(jié)合實例形式分析了vue.js組件的注冊、調(diào)用相關(guān)操作技巧,需要的朋友可以參考下
    2018-06-06
  • Vue響應(yīng)式原理的示例詳解

    Vue響應(yīng)式原理的示例詳解

    Vue 最獨特的特性之一,是非侵入式的響應(yīng)系統(tǒng)。數(shù)據(jù)模型僅僅是普通的 JavaScript 對象。而當你修改它們時,視圖會進行更新。本文將通過示例詳解Vue的響應(yīng)式原理,感興趣的可以了解一下
    2022-03-03

最新評論