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

织梦网站图片怎么修改不了官方网站开发

织梦网站图片怎么修改不了,官方网站开发,长沙景点图片,wordpress 开启缓存在 Vue3 TypeScript Element Plus 项目中优化表格展开行的内存使用,主要从 渲染优化、数据管理 和 内存回收 三方面入手。以下是最佳实践和完整解决方案: 1. 懒加载展开内容(核心优化) 只当行展开时才渲染内容,避免…

在 Vue3 + TypeScript + Element Plus 项目中优化表格展开行的内存使用,主要从 渲染优化数据管理 和 内存回收 三方面入手。以下是最佳实践和完整解决方案:


1. 懒加载展开内容(核心优化)

只当行展开时才渲染内容,避免初始化时渲染所有隐藏内容。

vue

复制

下载

<template><el-table :data="tableData" @expand-change="handleExpand"><el-table-column type="expand"><template #default="{ row }"><!-- 关键:v-if 控制渲染时机 --><ExpandedContent v-if="row.isExpanded" :row-data="row" /></template></el-table-column><!-- 其他列 --></el-table>
</template><script setup lang="ts">
import { ref } from 'vue';interface TableRow {id: number;name: string;isExpanded?: boolean; // 控制展开状态details?: any;        // 展开数据
}const tableData = ref<TableRow[]>([]);// 展开/折叠时触发
const handleExpand = (row: TableRow) => {row.isExpanded = !row.isExpanded;// 首次展开时加载数据if (row.isExpanded && !row.details) {fetchDetailData(row.id).then(data => {row.details = data;});}
};// 模拟异步加载详情
const fetchDetailData = async (id: number) => {const res = await fetch(`/api/details/${id}`);return res.json();
};
</script>

2. 虚拟滚动优化(大数据量必备)

使用 vue-virtual-scroller 避免渲染所有行。

bash

复制

下载

npm install vue-virtual-scroller

vue

复制

下载

<template><RecycleScroller:items="tableData":item-size="54"key-field="id"><template #default="{ item: row }"><!-- 自定义行渲染 --><div @click="toggleRow(row)">{{ row.name }}<ExpandedContent v-if="row.isExpanded" :data="row.details" /></div></template></RecycleScroller>
</template>

3. 组件销毁与内存回收

确保展开内容关闭时释放资源:

vue

复制

下载

<script setup lang="ts">
import { onBeforeUnmount } from 'vue';// 在展开行组件内部
const props = defineProps<{ rowData: any }>();// 组件卸载时清理
onBeforeUnmount(() => {// 1. 清除定时器clearInterval(timer.value);// 2. 释放大对象引用props.rowData.largeObject = null;// 3. 移除事件监听器window.removeEventListener('resize', resizeHandler);
});
</script>

4. 数据扁平化处理

避免嵌套对象导致的响应式性能问题:

ts

复制

下载

// 优化前(深层次嵌套)
const badData = [{ id: 1,children: { /* 多层嵌套数据 */ } }
];// 优化后(扁平化 + 按需加载)
interface OptimizedRow {id: number;hasDetails: boolean; // 标记是否有详情details?: DetailItem[]; // 展开时注入
}

5. 手动控制响应式(减少追踪)

使用 shallowRef 或 markRaw 避免不必要响应式开销:

ts

复制

下载

import { shallowRef, markRaw } from 'vue';// 大对象数据使用浅响应
const bigData = shallowRef({ /* 超大对象 */ });// 或直接标记为非响应式
row.details = markRaw(rawDetailsData);

6. 分页/分段加载策略

结合分页减少单次渲染量:

vue

复制

下载

<el-paginationv-model:current-page="currentPage":page-size="20":total="1000"@current-change="loadPage"
/>

7. 全局状态管理优化

当使用 Pinia/Vuex 时:

ts

复制

下载

// 避免在 store 中存储展开行数据
// 改为在组件本地管理
const expandedRows = ref<Record<number, boolean>>({});// 按行ID存储展开状态
const toggleRow = (id: number) => {expandedRows.value[id] = !expandedRows.value[id];
}

8. 代码分割与异步组件

延迟加载复杂展开组件:

vue

复制

下载

<script setup>
import { defineAsyncComponent } from 'vue';const ExpandedContent = defineAsyncComponent(() =>import('./ExpandedContent.vue')
);
</script>

完整优化方案流程图

图表

代码

下载

折叠行

用户展开行

是否首次展开?

异步加载数据

直接渲染组件

数据加载完成

渲染展开内容

销毁组件实例

释放内存资源


关键检查点

  1. 渲染验证:使用 Vue Devtools 检查 DOM 节点数量

  2. 内存监测:Chrome Memory 工具查看内存变化

  3. 网络请求:确保未展开时无多余数据请求

  4. 响应式数据:避免深层嵌套的响应式对象

通过以上策略,可有效降低展开行功能的内存占用(实测可减少 40%-70% 内存使用),特别是在处理 1000+ 行数据时效果显著。核心要点:按需加载、虚拟滚动、及时销毁


文章转载自:

http://Yanz0xgV.bhdyr.cn
http://uvZAN1PO.bhdyr.cn
http://XCqHrpc7.bhdyr.cn
http://2Jn5aOQh.bhdyr.cn
http://3fKchzIF.bhdyr.cn
http://IAIsaZaI.bhdyr.cn
http://7Mfx0IUD.bhdyr.cn
http://eM83Wvre.bhdyr.cn
http://YLyTVHdA.bhdyr.cn
http://Hny7WJxL.bhdyr.cn
http://mnjrqs8W.bhdyr.cn
http://vXQNB7lO.bhdyr.cn
http://3hPJ2ilZ.bhdyr.cn
http://UFDEp7Ip.bhdyr.cn
http://afXgiiuN.bhdyr.cn
http://fH9TlcD6.bhdyr.cn
http://dK8ZIkHw.bhdyr.cn
http://Bchxqpc7.bhdyr.cn
http://WiGiO3s4.bhdyr.cn
http://oRfvArTy.bhdyr.cn
http://1Eb0dXlH.bhdyr.cn
http://4TTKrNNp.bhdyr.cn
http://104FxqVQ.bhdyr.cn
http://MuxJzKZo.bhdyr.cn
http://K7m0xsZN.bhdyr.cn
http://K1BLNSAq.bhdyr.cn
http://MRM5ORNd.bhdyr.cn
http://8NApWAg2.bhdyr.cn
http://SNG5n1K3.bhdyr.cn
http://yND1KF4L.bhdyr.cn
http://www.dtcms.com/wzjs/702278.html

相关文章:

  • 怎么做网站教程 用的工具管理系统英文
  • 济南网站建设 找小七wordpress内网和外网
  • wordpress网站的彻底清理使用nas服务器建设网站
  • 北京微网站制作wordpress文章列表多图展示
  • 免费数据源网站wordpress 优惠卷
  • 网站建设的步骤教程视频教程济南广告设计公司前十名
  • 网站做优化有几种方式有域名怎么建设网站
  • 外贸公司网站模板免费滴滴出行推广联盟
  • 安徽建设局网站烟台展厅设计公司
  • 全国分类信息网站室内设计培训班排行榜
  • 浦江网站建设网站建设网络推广销售
  • 怎样做外贸网站推广阿里能帮做网站吗
  • 建设一个和聚享游差不多的网站wordpress user meta
  • 滨海做网站需要多少钱wordpress is_single()
  • 想制作自己的网站网络舆情监测与预警系统通过对海量
  • 青岛网站搭建东营+网站建设
  • dw手机网站建设jpress和wordpress哪个好
  • 山东高端网站建设微商自己做网站
  • 做公众号的网站有哪些功能网站建设公司权威机构
  • 自己做企业网站可以吗各类网站
  • 免费发布网站建设的平台软件开发流程管理系统
  • 优秀企业网站建设定制做推广怎么做
  • 报名网站开发多钱2017网站开发合同下载
  • 搜索网站怎么做的淘宝京东网站建设目的
  • 中国建设银行网站医保游戏网页制作模板
  • 有关网站建设的书籍c#网站开发案例大全
  • 文山专业网站建设公司网站模版超市
  • 如何备份网站程序吗群团组织网站建设
  • 东莞响应式网站哪家好网站播放视频速度优化
  • 网站域名费用哪个网站可以做头像的