errorImg异常图片显示

博客给出了一段代码,用于设置默认图片。代码中指定当图片加载出错时,将图片源替换为指定路径 '../../../assets/img/zpsbth.png' 的图片。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 errorImg:'this.src="'+require('../../../assets/img/zpsbth.png')+'"',//默认图片

### Vue 中实现图片自适应样式的最佳实践 在 Vue 开发中,为了使图片能够在不同的设备和屏幕上保持良好的显示效果,可以采用多种技术手段来实现图片的自适应样式。以下是几种常见的解决方案及其示例代码。 #### 方法一:通过 CSS 媒体查询与响应式设计 利用 CSS 的 `max-width` 属性可以让图片自动调整到其父容器的宽度范围之内。结合媒体查询,可以根据屏幕尺寸动态改变图片的样式[^1]。 ```html <template> <div class="image-container"> <img :src="imageUrl" alt="Responsive Image" /> </div> </template> <style scoped> .image-container img { max-width: 100%; height: auto; } @media (max-width: 1200px) { .image-container img { border-radius: 10px; } } </style> ``` 这种方法简单高效,适用于大多数场景下的图片自适应需求。 --- #### 方法二:使用懒加载插件并定制比例计算器 如果项目中有大量图片资源需要加载,则可以通过引入第三方懒加载库(如 `vue-lazyload`),并通过自定义逻辑控制图片的比例。 ```javascript import VueLazyload from 'vue-lazyload'; import loadingImg from '@/assets/loading.png'; import errorImg from '@/assets/error.png'; export default { created() { this.$lazyLoad = new VueLazyload({ preLoad: 1.3, attempt: 1, lazyComponent: true, load: function () {}, error: errorImg, loading: loadingImg, ratioCalculator(width, height) { const minRatio = 3 / 4; const maxRatio = 4 / 3; const currentRatio = width / height; if (currentRatio < minRatio) return minRatio; if (currentRatio > maxRatio) return maxRatio; return currentRatio; }, }); }, }; ``` 这种方式不仅优化了性能,还允许开发者灵活设定图片展示的最佳比例。 --- #### 方法三:基于 REM 单位的设计稿适配方案 对于更复杂的页面布局,尤其是涉及多个分辨率的大屏应用时,推荐使用 `lib-flexible` 结合 `px2rem-loader` 来完成单位转换[^3]。这使得图片和其他组件都能依据实际屏幕密度进行缩放。 ##### Webpack 配置更新 编辑项目的 Webpack 构建工具链,在 CSS 加载器之后加入 `px2rem-loader`: ```javascript const px2remLoader = { loader: 'px2rem-loader', options: { remUnit: 192, // 设计稿宽度除以10作为基础值 remPrecision: 8, }, }; ``` 随后编写对应的 SCSS 或者 LESS 文件,统一管理视觉元素的大小关系。 --- #### 方法四:Ant Design Vue 表格中的列宽自适应机制 针对某些特定业务场景,比如表格内的嵌套图像也需要支持动态伸缩的话,可以从 Ant Design Vue 提供的基础功能出发扩展[^4]。例如修改 Excel 导出模块内部计算单元格宽度的部分算法即可满足要求。 ```javascript // vendor/Export2Excel.js 修改片段 function adjustColumnWidth(data) { const colWidths = data.map((row) => row.map((cellValue) => ({ wch: cellValue === null || typeof cellValue !== 'string' ? 10 : Math.max( ...cellValue.split('\n').map((lineText) => lineText.charCodeAt(0) > 255 ? lineText.length * 2 + 5 : lineText.length + 5 ) ), }) ); return colWidths.reduce((prevRow, currRow) => prevRow.map((colSize, idx) => ({ wch: Math.max(colSize.wch, currRow[idx]?.wch ?? 0), })) ); ``` 调用该函数前传入完整的二维数组形式的数据集,从而获得精确匹配的内容区域边界条件。 --- ### 总结 以上四种方式分别对应不同层次的技术选型方向,从简单的纯前端样式调整到复杂的企业级框架集成都有覆盖。开发人员应根据实际情况权衡利弊选取最合适的策略组合起来解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值