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

网站科技感颜色成都互联网公司十强

网站科技感颜色,成都互联网公司十强,轻云服务器 wordpress,工作室名字创意好听在前端开发中#xff0c;封装组件是必不可少的。今天就来封装一个通用的列表表格组件#xff0c;包含分页功能#xff0c;可以提高代码的复用性和可维护性。 1. 组件设计 Props#xff1a; tableData#xff1a;表格数据。columns#xff1a;表格列配置。total#xff…在前端开发中封装组件是必不可少的。今天就来封装一个通用的列表表格组件包含分页功能可以提高代码的复用性和可维护性。 1. 组件设计 Props tableData表格数据。columns表格列配置。total总条数。loading加载状态。pagination分页配置当前页、每页条数。 Events update:pagination分页变化时触发。refresh刷新数据时触发。 Slots 自定义列内容。自定义操作按钮。 2. 封装代码 TableWithPagination.vue templatediv classtable-with-pagination!-- 表格 --el-table:datatableDataborderstripev-loadingloadingstylewidth: 100%!-- 动态列 --el-table-columnv-forcolumn in columns:keycolumn.prop:propcolumn.prop:labelcolumn.label:widthcolumn.width:aligncolumn.align || center!-- 自定义列内容 --template #defaultscope v-ifcolumn.slotslot :namecolumn.slot :rowscope.row/slot/template/el-table-column!-- 操作列 --el-table-columnv-if$slots.actionslabel操作aligncenter:widthactionsWidthtemplate #defaultscopeslot nameactions :rowscope.row/slot/template/el-table-column/el-table!-- 分页 --el-paginationclasspaginationbackgroundlayouttotal, sizes, prev, pager, next, jumper:totaltotal:page-sizepagination.pageSize:current-pagepagination.pageNosize-changehandleSizeChangecurrent-changehandleCurrentChange//div /templatescript setup import { ref, watch } from vue;const props defineProps({tableData: {type: Array,default: () [],},columns: {type: Array,default: () [],},total: {type: Number,default: 0,},loading: {type: Boolean,default: false,},pagination: {type: Object,default: () ({pageNo: 1,pageSize: 10,}),},actionsWidth: {type: String,default: 180,}, });const emit defineEmits([update:pagination, refresh]);// 分页大小变化 const handleSizeChange (pageSize) {emit(update:pagination, { ...props.pagination, pageSize });emit(refresh); };// 当前页变化 const handleCurrentChange (pageNo) {emit(update:pagination, { ...props.pagination, pageNo });emit(refresh); }; /scriptstyle scoped .table-with-pagination {margin-top: 20px; }.pagination {margin-top: 20px;text-align: right; } /style 3. 使用示例  templatediv!-- 搜索栏 --el-form :inlinetrue :modelqueryParamsel-form-item label任务名称el-input v-modelqueryParams.taskName placeholder请输入任务名称 //el-form-itemel-form-itemel-button typeprimary clickhandleSearch搜索/el-button/el-form-item/el-form!-- 表格组件 --TableWithPagination:table-datatableData:columnscolumns:totaltotal:loadingloading:paginationpaginationupdate:paginationhandlePaginationChangerefreshfetchData!-- 自定义列 --template #status{ row }el-tag :typerow.status 1 ? success : danger{{ row.status 1 ? 启用 : 禁用 }}/el-tag/template!-- 操作列 --template #actions{ row }el-button typeprimary sizesmall clickhandleEdit(row)编辑/el-buttonel-button typedanger sizesmall clickhandleDelete(row)删除/el-button/template/TableWithPagination/div /templatescript setup import { ref, onMounted } from vue; import TableWithPagination from ./components/TableWithPagination.vue; import { fetchTaskList } from /api/task; // 假设有一个获取任务列表的 API// 表格列配置 const columns [{ prop: taskName, label: 任务名称 },{ prop: taskType, label: 任务类型 },{ prop: status, label: 状态, slot: status }, // 使用自定义列 ];// 表格数据 const tableData ref([]); const total ref(0); const loading ref(false);// 查询参数 const queryParams ref({taskName: , });// 分页参数 const pagination ref({pageNo: 1,pageSize: 10, });// 获取数据 const fetchData async () {try {loading.value true;const res await fetchTaskList({...queryParams.value,...pagination.value,});tableData.value res.data.list;total.value res.data.total;} catch (error) {console.error(获取数据失败, error);} finally {loading.value false;} };// 分页变化 const handlePaginationChange (newPagination) {pagination.value newPagination;fetchData(); };// 搜索 const handleSearch () {pagination.value.pageNo 1; // 重置页码fetchData(); };// 编辑 const handleEdit (row) {console.log(编辑, row); };// 删除 const handleDelete (row) {console.log(删除, row); };// 初始化加载数据 onMounted(() {fetchData(); }); /script 父组件中使用 TableWithPagination以上就是封装 Vue 3 和 Element Plus 中封装一个通用的列表表格组件将表格和分页逻辑封装在一个组件中便于维护和扩展。
http://www.hkea.cn/news/14317130/

相关文章:

  • 旅游门户网站建设方案模板网站流量的重要性
  • html期末大作业个人网站制作巩义机械厂网站建设
  • 做网站的顺序易语言登录WordPress账号
  • 网站建设前期规划方案范文wordpress能做游戏
  • 网站备案流程教程宽屏wordpress主题
  • 南通科技网站建设龙岩e网站
  • 网站301了不知道在哪做的海口网站设计
  • 锡林浩特建设局网站wordpress mxtheme02
  • 好模版网站小程序制作单位
  • 北京网站关键词排名通付盾 网站建设公司
  • 天津 网站设计公司ps做 网站标准尺寸
  • 网站后台管理界面代码懂得都懂晚上正能量
  • 谷歌关键词搜索排名谷歌seo 外贸建站
  • 仿卢松松博客网站源码省建设厅官网查询
  • 如何做企业网站及费用问题有视频接口怎么做网站
  • 门户网站 jspwordpress食谱主题
  • 做网站的困难一级a做爰片2202网站
  • 在线制作网站律师个人网站模板
  • 营销型网站成功案例公司怎么样做网站
  • 一块钱涨1000粉网站wordpress列表加载更多
  • 福州有网站开发的公司吗wordpress增加边栏
  • 潍坊网站开发公司宁波seo优化报价多少
  • 公司设计网站定制广告公司做网站的效果怎么样
  • 建设商城网站湖南建立网站营销设计
  • 网站开发汇报的ppt专业的画册设计网站
  • 制作网站后台注册公司上什么网站
  • 如何做多语言网站全网营销推广
  • 衡水网站建wordpress购买按钮插件
  • 南宁定制网站建设网站经典设计
  • 网站按钮确定后图片怎么做如何给网站绑定域名