【问题标题】:How to load Axios Response before Vue Component renders?如何在 Vue 组件渲染之前加载 Axios Response?
【发布时间】:2021-12-09 20:27:18
【问题描述】:

我想使用:

homePage.image = 'storage/' + 'rkiGXBj7KJSOtsR5jiYTvNOajnzo7MlRAoXOXe3V.jpg'

内部:

<div class="home-image" :style="{'background-image': 'url(' + homePage.image + ')'}"></div>

在渲染 Vue 组件之前,但 homePage.image 返回 ""

这是我的组件:

<template>
  <section id="home" class="home">
    <div class="image-container">
      <div class="home-image" :style="{'background-image': 'url(' + homePage.image + ')'}"></div>
    </div>
  </section>
</template>


<script setup>
import {ref} from 'vue';

const homePage = ref({
    image: ""
});

axios.get('/home')
    .then(res => {
        homePage.image = 'storage/' + 'rkiGXBj7KJSOtsR5jiYTvNOajnzo7MlRAoXOXe3V.jpg'; // storage link + image file name
    })
    .catch(err => {
        console.log(err.response);
    });

// works
// const image = 'storage/' + 'rkiGXBj7KJSOtsR5jiYTvNOajnzo7MlRAoXOXe3V.jpg';

</script>

如何让homePage.image 在从axios 函数内部加载到组件中之前更新为'storage/' + 'rkiGXBj7KJSOtsR5jiYTvNOajnzo7MlRAoXOXe3V.jpg'

【问题讨论】:

    标签: ajax vue.js axios vuejs3 vue-composition-api


    【解决方案1】:

    当您使用ref 进行反应性时,您必须使用value

    homePage.value.image = 'storage/' + 'rkiGXBj7KJSOtsR5jiYTvNOajnzo7MlRAoXOXe3V.jpg';
    

    【讨论】:

    • value 添加到作业中使其工作。谢谢 :-)。请问require是干什么用的?我似乎不需要添加它,它可以工作。
    • 嘿,伙计,require 如果您从资产目录中获取图像,则需要,在您的情况下,您不需要它,所以这是我的错误,我将从答案中删除它,干杯:)
    猜你喜欢
    • 2018-11-29
    • 2019-01-03
    • 2020-03-18
    • 2016-06-09
    • 2021-04-19
    • 1970-01-01
    • 1970-01-01
    • 2021-03-07
    相关资源
    最近更新 更多