当前位置: 首页 > news >正文

vue3:动态渲染后端返回的图片

问:

div class='left-png'
这里我用css设置了他的背景图片,但是现在我希望改为后端返回的图片,怎么写?
后端返回数据:
const centerdata= {img:;xxxx,title,xxxx,num:xxxx}?

回答:

好的,下面是一个使用Vue 3的`setup`语法的示例,展示如何动态设置背景图片:

<template>
  <div :class="['left-png', { 'loading': !centerdata }]" :style="{ backgroundImage: `url(${centerdata?.img})` }">
    <!-- 其他内容 -->
  </div>
</template>

<script>
import { ref, onMounted } from 'vue';

export default {
  setup() {
    const centerdata = ref(null);

    const fetchCenterdata = async () => {
      // 模拟后端返回数据
      return new Promise((resolve) => {
        setTimeout(() => {
          resolve({
            img: 'https://example.com/path/to/your/image.jpg',
            title: 'Example Title',
            num: 123
          });
        }, 1000);
      });
    };

    onMounted(async () => {
      const data = await fetchCenterdata();
      centerdata.value = data;
    });

    return {
      centerdata
    };
  }
};
</script>

<style scoped>
.left-png {
  width: 300px;
  height: 300px;
  background-size: cover;
  background-position: center;
}

.loading {
  background-image: url('https://example.com/path/to/loading/image.jpg'); /* 加载时的占位图片 */
}
</style>

在这个示例中:

1. 使用`ref`来创建一个响应式数据`centerdata`,初始值为`null`。
2. 使用`onMounted`钩子在组件挂载时调用`fetchCenterdata`函数,模拟从后端获取数据。
3. 在模板中,使用`:style`动态绑定背景图片,并使用`centerdata?.img`确保在`centerdata`为`null`时不会报错。
4. 使用`:class`动态绑定类名,在数据加载时显示加载中的占位图片。

你可以根据实际情况替换模拟数据部分为实际的数据获取逻辑。

相关文章:

  • 朝天椒USB服务器解决前置机U盾虚拟机远程连接
  • Python常见面试题的详解3
  • ES分词技术
  • SpringBoot:使用spring-boot-test对web应用做单元测试时如何测试Filter?
  • Redis 集群相关知识介绍
  • 小初高各学科教材,PDF电子版下载
  • 切换git仓库远程地址
  • C#windows窗体人脸识别
  • Ubuntu 下 nginx-1.24.0 源码分析 - ngx_atomic_cmp_set 函数
  • Django5的新特征
  • Manga Image Translator 开源 AI 漫画翻译工具的深度剖析
  • 【编写UI自动化测试集】Appium+Python+Unittest+HTMLRunner​
  • ubuntu服务器 如何配置安全加固措施
  • Visual Studio 使用 “Ctrl + /”键设置注释和取消注释
  • 肝了半年,我整理出了这篇云计算学习路线(新手必备,从入门到精通)
  • 安卓手游内存call综合工具/内部call/安卓注入call/数据分析(类人猿学院)
  • C语言-章节 4:函数的定义与声明 ——「神秘法术的卷轴」
  • stm32mp集成swupdateOTA升级
  • docker nginx 配置文件详解
  • vuedraggable固定某一item的记录
  • 发表“男性患子宫肌瘤”论文的杂志一年发文三千余篇,中介称可提供代写
  • 贵州黔西游船发生侧翻事故,游客:事发时能见度只有一米,所乘船只停靠礁石避险
  • 张家口一景区观光魔毯疑失控致游客被甩出,涉事景区改造升级重新开园才3天
  • 长三角铁路今日预计发送旅客398万人次,客流持续保持高位运行
  • 民族音乐还能这样玩!这场音乐会由AI作曲
  • 力保夏粮丰收,粮食大省江苏多地党政主官到田间察看小麦长势