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

前端小案例-图片存放在远端服务器

前端小案例-图片存放在远端服务器

项目背景:

一个智能产业园的小程序由于可以控制很多种设备,可能有灯、空调、窗帘等智能设备。

现在面临以下问题:

  1. 需要存放很多设备的图标。
  2. 设备的图标可能会进行修改。

为了解决上面的问题,我们可以将设备的图标保存在远端的服务器。从服务器请求图片到本地进行渲染。

但是这样可能会导致一个新的问题就是如果服务器挂了,小城序的图标就不能够使用了。对此我们的对策是当服务器获取不到图片的时候就使用本地的某张备用照片。

根据上述背景整理出下列案例

案例1

遍历一个设备数组,每个元素li标签里的img需要放一张与元素相关的图片,如果请求服务器没有该地址的图片,或者服务器挂了,则应该使用本地的图片。这应该如何实现呢

在React中,你可以使用数组的map方法来遍历设备数组,并为每个设备渲染相应的<li>元素。对于每个<li>元素中的图片,你可以使用之前提到的逻辑来加载服务器图片并备用本地图片。

以下是一个示例代码,展示了如何在React中实现遍历设备数组并加载相关图片的逻辑:

import React from 'react';const DeviceList = ({ devices }) => {return (<ul>{devices.map((device) => (<li key={device.id}><imgsrc={device.serverImagePath}alt="Device Image"onError={(e) => {e.target.src = require('./defaultImg.png');}}/><span>{device.name}</span></li>))}</ul>);
}export default DeviceList;

在上面的代码中,DeviceList组件接受devices作为属性,它是设备数组。map方法用于遍历设备数组,并为每个设备渲染一个<li>元素。其中,src属性被设置为设备的服务器图片路径。如果加载失败,则会触发onError事件处理程序,利用require 导入设置为图片的src属性,从而显示备用的本地图片。这里使用了内联的箭头函数来为每个<img>元素定义事件处理程序。

你可以在父组件中使用DeviceList并传递设备数组:

import React from 'react';
import DeviceList from './DeviceList';function App() {const devices = [{ id: 1, name: 'Device 1', serverImagePath: '服务器图片路径1'},{ id: 2, name: 'Device 2', serverImagePath: '服务器图片路径2'},// 其他设备];return (<div><DeviceList devices={devices} /></div>);
}export default App;

确保将每个设备对象中的"服务器图片路径"替换为实际的服务器图片路径,将"本地图片路径"替换为实际的本地图片路径。

这样,对于每个设备,会根据服务器图片路径加载图片,如果加载失败,则会显示备用的本地图片。

http://www.lryc.cn/news/187959.html

相关文章:

  • 【鼠标右键菜单添加用VSCode打开文件或文件夹】
  • 【jvm--堆】
  • 【数据库——MySQL(实战项目1)】(1)图书借阅系统
  • [GXYCTF 2019]Ping Ping Ping题目解析
  • HTTP协议的请求协议和响应协议的组成,HTTP常见的状态信息
  • 【LeetCode】剑指 Offer Ⅱ 第6章:栈(6道题) -- Java Version
  • vue3的element-plus的el-dialog的样式修改无效问题
  • 归纳所猜半结论推出完整结论:CF1592F1
  • WPFdatagrid结合comboBox
  • Markdown类图之继承、实现、关联、依赖、组合、聚合总结(十五)
  • @MultipartConfig注解
  • Python并发编程简介
  • WebSocket介绍及部署
  • 自动求导,计算图示意图及pytorch实现
  • 睿伴科创上线了
  • 域名抢注和域名注册
  • 【20】c++设计模式——>组合模式
  • Jetpack:004-如何使用文本组件
  • JVM(八股文)
  • C#WPF标记扩展应用实例
  • 四维曲面如何画?matlab
  • 软件培训测试高级工程师多测师肖sir__html之作业11
  • 详解一典型的反激式开关电源方案
  • AI 大框架基于python来实现基带处理之TensorFlow(信道估计和预测模型,信号解调和解码模型)
  • 阿里云上了新闻联播
  • 算法练习12——跳跃游戏
  • Java架构师系统架构设计服务拆分
  • 通用任务批次程序模板
  • Rust专属开发工具——RustRover发布
  • 数据结构:链表(1)