el-table表格列宽封装提取,使用mixins

说实话,我挺讨厌封装的,尤其之前在华为,要求一个函数只要使用两次都得封装出去。但是,这次,我切实体会到了不封装给我带来的痛处。

我们这个项目大概有13个表格,有的有“产品规格”列,有的有“分类数量”列,有的有“处理人”列,,有的无,而他们列宽又各不相同,要我改动几个列宽(比如改5个,5x13=65处,还得试,还容易漏,而且后面老板心情不好了还可能改回来),周五给我累的啊。

重点,他们每个列宽不一样,要封装出去,怎么做呢。

思路一,公共样式,不同的类名呗,提取出去,但是el-table的,好像应用上来没生效。(可能我没找到合适的写法,有知道的童鞋可以评论区or私信指教一下,有偿)

思路二,写成变量,不同的变量名,用mixins

话不多说,上代码

src>view>mixins>table>tableWidth.js

import { ref } from 'vue';
export default function(){
    let indexWidth = ref(80)
    let priceCodeWidth = ref(160)
    let useToWidth = ref(70)
    let projectCodeWidth = ref(150)
    ......
    return {
        indexWidth, // 序号宽度
        priceCodeWidth, // 报价单号宽度
        useToWidth, // 用途宽度
        projectCodeWidth, //项目编号宽度
        ......
    }
}

使用:

发现公司项目vue3用了两种setup写法,第一种<script setup>这样的使用:

第二种setup(){ 这样的使用:

你必须得return出去,重要的事情说一遍[/狗头][/狗头]。

细心的同学发现了align我也进行了封装,但是是页面级别的,而且vue3两种写法使用是不一样的。(<script setup>这样的带state.,setup(){}这样的不带state.)

ok,分享完毕。

后面就是雪,火锅,和更好的我们。加油,骚年~

  • 11
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 封装 el-upload 组件可以方便地在多个地方复用它,而不必在每个使用它的地方都编写一遍相同的代码。下面是一个简单的封装示例: ``` <template> <el-upload class="upload-demo" :action="action" :accept="accept" :before-upload="beforeUpload" :on-success="onSuccess" :on-error="onError" > <slot></slot> </el-upload> </template> <script> export default { name: 'MyUpload', props: { action: { type: String, required: true }, accept: { type: String, default: '' } }, methods: { beforeUpload(file) { // 在上传之前进行一些处理,例如限制文件大小等 // 如果返回 false 或 Promise.reject(),则取消上传 }, onSuccess(response, file, fileList) { // 上传成功后的回调函数 }, onError(error, file, fileList) { // 上传失败后的回调函数 } } } </script> ``` 在上面的示例中,我们使用了一个名为 `MyUpload` 的组件来封装 el-upload 组件。这个组件的 props 包括 `action` 和 `accept` 两个属性,分别代表上传文件的接口地址和可接受的文件类型。 在组件的方法中,我们实现了 `beforeUpload`、`onSuccess` 和 `onError` 三个回调函数,分别代表上传之前的处理、上传成功后的处理和上传失败后的处理。这些回调函数可以根据实际需求来编写。 在模板中,我们使用了一个 `slot` 来插入 el-upload 组件的上传按钮和提示信息,这样可以使组件更加灵活。在使用这个组件时,只需像下面这样调用: ``` <my-upload action="/upload" accept="image/*" v-on:success="handleSuccess" v-on:error="handleError" > <el-button>点击上传</el-button> <div slot="tip">只能上传图片</div> </my-upload> ``` 在上面的示例中,我们将 `MyUpload` 组件用 `my-upload` 标签来调用。在组件中,我们使用了 `v-on` 指令来监听上传成功和失败事件,并分别调用了 `handleSuccess` 和 `handleError` 方法来处理这些事件。在组件的插槽中,我们自定义了上传按钮和提示信息。 ### 回答2: el-upload是element-ui中的一个上传组件,用于实现文件上传功能。封装el-upload组件的目的是为了方便在项目中重复使用它,并且可以根据项目的特殊需求进行个性化配置和定制。 在封装el-upload组件时,可以使用mixin混入的方式来实现。首先,我们可以定义一个uploadMixin对象,其中包含一些常用的配置项和方法,如上传文件的接口地址、上传文件的类型限制、上传成功后的回调函数等。 然后,在需要使用el-upload组件的地方,引入uploadMixin,并在组件的mixins选项中将uploadMixin添加进去。这样,就可以继承uploadMixin中的配置和方法,实现el-upload的定制化使用。 在具体使用el-upload组件时,可以根据具体需求,配置一些参数,比如是否支持多文件上传、是否显示文件列表、是否自动上传等。同时,也可以通过监听el-upload的事件来实现一些额外的逻辑操作,比如文件上传前的校验、进度条的展示等。 通过封装el-upload组件,可以抽象出一些通用的上传行为和样式,减少重复代码的编写,提高开发效率。同时,也方便后续对上传功能的扩展和维护,在项目的后续需求变更时,只需要对封装好的组件进行相应的配置和调整,而不需要对每个使用el-upload组件的地方进行修改。 总之,封装el-upload组件能够提升代码的复用性和可维护性,减少开发成本,提高开发效率。 ### 回答3: el-upload是基于element-ui封装的文件上传组件,使用它可以方便地实现文件的上传和管理。在进行封装时,可以根据实际需求添加一些额外的功能,以增强其功能性和便利性。 在封装el-upload组件时,可以考虑以下几个要点: 1. 文件类型限制:可以设置允许上传的文件类型,如限制只能上传图片、文档、压缩包等特定类型的文件。 2. 文件大小限制:可以限制上传文件的最大大小,以防止用户上传过大的文件。 3. 上传进度条:可以添加一个上传进度条,用于显示文件上传的进度,提升用户体验。 4. 文件预览功能:可以在上传文件后,提供文件预览的功能,例如图片可以直接显示预览,文档可以提供下载链接等。 5. 多文件上传:可以支持多个文件同时上传,并正确处理每个文件的上传结果。 6. 文件删除功能:在文件上传后,提供删除已上传文件的功能,以方便用户删除不需要的文件。 7. 自定义样式:可以设置上传按钮的样式、进度条的颜色等,以适应项目的整体风格。 8. 错误处理:对于上传过程中的错误,可以提供友好的错误提示,同时对异常情况进行处理和回馈给用户。 通过封装el-upload组件,可以减少重复的代码编写工作,提高代码的复用性和可维护性。同时,组件的封装可以使得开发人员更加专注于实际业务逻辑的实现,提升开发效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值