欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue3接口數(shù)據(jù)賦值對(duì)象,渲染報(bào)錯(cuò)問(wèn)題及解決

 更新時(shí)間:2022年09月08日 08:37:05   投稿:jingxian  
這篇文章主要介紹了vue3接口數(shù)據(jù)賦值對(duì)象,渲染報(bào)錯(cuò)問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

vue3接口數(shù)據(jù)賦值對(duì)象,渲染報(bào)錯(cuò)

const app = require('express')()
// 跨域設(shè)置
app.all("*", function (req, res, next) {
    res.setHeader("Access-Control-Allow-Credentials", true);
    res.setHeader("Access-Control-Allow-Origin", '*'); // 添加這一行代碼,代理配置不成功
    res.setHeader("Access-Control-Allow-Methods", '*');
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, If-Modified-Since")
    next();
})
app.get('/', function (req, res) {
    res.send({
        dict: 'sfasf',
        detailAddress:'1111111'
  })
})
app.listen(9999, () => {
    console.log('http://localhost:9999')
})

用express啟動(dòng)了一個(gè)簡(jiǎn)單的node服務(wù)器寫了一個(gè)測(cè)試接口

vue/cli創(chuàng)建的vue3項(xiàng)目,頁(yè)面中通過(guò)接口獲取的數(shù)據(jù),注意第二個(gè)屬性dict

現(xiàn)在我們用對(duì)象賦值的方法將res.data賦值給vue3的reactive里綁定的屬性form

<template>
<div>{{data.form.dict}}</div>
<div>{{data.form.detailAddress}}</div>
</template>
 
<script setup>
import {reactive} from 'vue';
import axios from 'axios'
const data = reactive({
    form:null,
})
axios.get('http://localhost:9999').then(res => {
    console.log(res,'res');
    if (res.status === 200) {
        data.form = res.data
        console.log(data.form);
    }
})
</script>
 
<style lang="scss" scoped>
</style>

查看打印結(jié)果

報(bào)錯(cuò)了,但是頁(yè)面能渲染 

如果我們把動(dòng)態(tài)數(shù)據(jù)綁定的form初始化的值不用null,換成{}

<template>
<div>{{data.form.dict}}</div>
<div>{{data.form.detailAddress}}</div>
</template>
 
<script setup>
import {reactive} from 'vue';
import axios from 'axios'
const data = reactive({
    form:{},
})
axios.get('http://localhost:9999').then(res => {
    console.log(res,'res');
    if (res.status === 200) {
        data.form = res.data
        console.log(data.form);
    }
})
</script>
 
<style lang="scss" scoped>
</style>

打印結(jié)果

 沒(méi)有報(bào)錯(cuò),且能渲染  

總結(jié):通過(guò)樓主查閱各種文檔的細(xì)心研磨,發(fā)現(xiàn)vue3的動(dòng)態(tài)數(shù)據(jù)綁定,在進(jìn)行proxy代理的時(shí)候,get方法中的return返回時(shí),使用了reflect反射來(lái)綁定this的指向

get:function(target,key){
    return Reflect.get(target,key)
}

我認(rèn)為,如果初始值為null,會(huì)導(dǎo)致this指向null,引發(fā)這個(gè)報(bào)錯(cuò)問(wèn)題,目前樓主認(rèn)為是這個(gè)原因?qū)е碌摹?/p>

vue在渲染數(shù)據(jù)的時(shí)候的一些報(bào)錯(cuò)問(wèn)題

問(wèn)題描述

vue在請(qǐng)求獲取數(shù)據(jù)的時(shí)候,這個(gè)過(guò)程是異步的,但是剛進(jìn)頁(yè)面的時(shí)候,數(shù)據(jù)還未被獲取到,是為空的,如果再次點(diǎn)擊拿下一層數(shù)據(jù)時(shí)沒(méi)辦法拿到數(shù)據(jù)的,會(huì)報(bào)錯(cuò)

解決方法

i  在data中不使用null而是使用{}

ii可以在data中使用null,但是在渲染數(shù)據(jù)的外面的包一個(gè)div,使用v-if=" homeData"

<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./vue.js"></script>
</head>
 
<body>
    <div id="app">  
        <!-- <div v-if="homeData"> -->
            <div class="bangItem" v-for="bangItem in homeData.rank_list">
            <!-- </div> -->
        </div>
        
    </div>
 
    <script>
        var app = new Vue({
            el: '#app',
            data: {
                // homeData:null//剛進(jìn)來(lái)的時(shí)候是null,上面使用rank_list還未獲取數(shù)據(jù),會(huì)報(bào)錯(cuò),解決方法這里不使用Null,用{},方法二這里可以使用null,然后在渲染數(shù)據(jù)外面包一個(gè)div,使用v-if homeDate
                homeData: {}
            },
            created() {
                this.getHome()
            },
            methods: {
                getHome() {
                    fetch('http://m.kuwo.cn/newh5app/api/mobile/v1/home').then(res => res.json()).then(res => {
                        console.log(res);
                        this.homeData = res.data;
                    })
                }
            }
        })
 
    </script>
</body>
 
</html>

在vue中請(qǐng)求數(shù)據(jù)的時(shí)候,同一個(gè)數(shù)據(jù)有的是數(shù)據(jù)是不存在的,有的是存在的,如果直接寫會(huì)報(bào)錯(cuò),這時(shí)候可以在沒(méi)有的那個(gè)數(shù)據(jù)名后面加?l來(lái)作為判斷,之后再往下點(diǎn)一層

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

相關(guān)文章

  • vuex + keep-alive實(shí)現(xiàn)tab標(biāo)簽頁(yè)面緩存功能

    vuex + keep-alive實(shí)現(xiàn)tab標(biāo)簽頁(yè)面緩存功能

    這篇文章主要介紹了vuex + keep-alive實(shí)現(xiàn)tab標(biāo)簽頁(yè)面緩存功能,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-10-10
  • vue實(shí)現(xiàn)導(dǎo)航欄效果(選中狀態(tài)刷新不消失)

    vue實(shí)現(xiàn)導(dǎo)航欄效果(選中狀態(tài)刷新不消失)

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)導(dǎo)航欄效果,選中狀態(tài)刷新不消失,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • 從零搭建一個(gè)vite+vue3+ts規(guī)范基礎(chǔ)項(xiàng)目(搭建過(guò)程問(wèn)題小結(jié))

    從零搭建一個(gè)vite+vue3+ts規(guī)范基礎(chǔ)項(xiàng)目(搭建過(guò)程問(wèn)題小結(jié))

    這篇文章主要介紹了從零搭建一個(gè)vite+vue3+ts規(guī)范基礎(chǔ)項(xiàng)目,本項(xiàng)目已vite開(kāi)始,所以按照vite官方的命令開(kāi)始,對(duì)vite+vue3+ts項(xiàng)目搭建過(guò)程感興趣的朋友一起看看吧
    2022-05-05
  • vue使用html2canvas和jspdf將html轉(zhuǎn)成pdf

    vue使用html2canvas和jspdf將html轉(zhuǎn)成pdf

    在前端開(kāi)發(fā)中, html轉(zhuǎn)pdf是最常見(jiàn)的需求,下面這篇文章主要給大家介紹了關(guān)于vue如何使用html2canvas和jspdf將html轉(zhuǎn)成pdf的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-03-03
  • vue實(shí)現(xiàn)nav導(dǎo)航欄的方法

    vue實(shí)現(xiàn)nav導(dǎo)航欄的方法

    這篇文章主要為大家詳細(xì)介紹了vue項(xiàng)目nav導(dǎo)航欄的實(shí)現(xiàn)方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • 搭建Vue從Vue-cli到router路由護(hù)衛(wèi)的實(shí)現(xiàn)

    搭建Vue從Vue-cli到router路由護(hù)衛(wèi)的實(shí)現(xiàn)

    這篇文章主要介紹了搭建Vue從Vue-cli到router路由護(hù)衛(wèi)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • vue頁(yè)面批量引入組件的操作代碼

    vue頁(yè)面批量引入組件的操作代碼

    這篇文章主要介紹了vue頁(yè)面批量引入組件,本文結(jié)合示例代碼給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-12-12
  • VueRouter路由模式全面解析

    VueRouter路由模式全面解析

    這篇文章主要介紹了VueRouter路由模式的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Vue組件開(kāi)發(fā)初探

    Vue組件開(kāi)發(fā)初探

    本篇文章主要介紹了Vue組件開(kāi)發(fā)初探,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-02-02
  • vue中的依賴注入provide和inject簡(jiǎn)單介紹

    vue中的依賴注入provide和inject簡(jiǎn)單介紹

    這篇文章主要介紹了vue中的依賴注入provide和inject簡(jiǎn)單介紹,provide 選項(xiàng)允許我們指定我們想要提供給后代組件的數(shù)據(jù)/方法,本文通過(guò)組價(jià)刷新的案列給大家詳細(xì)講解,需要的朋友可以參考下
    2022-11-11

最新評(píng)論