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

北京做网站制作公司香港头条新闻

北京做网站制作公司,香港头条新闻,济南网站开发培训班,邯郸做网站公司哪家好el-dialog是使用率很高的组件 使用el-dialog很多都是按照文档的例子,用一个变量控制是否显示,再来一个变量控制标题。 如果我这个对话框多个地方使用的话还要创建多个变量,甚至关闭之后还要清空一些变量,应该可以简化一点。我写…

在这里插入图片描述

el-dialog是使用率很高的组件

使用el-dialog很多都是按照文档的例子,用一个变量控制是否显示,再来一个变量控制标题。

如果我这个对话框多个地方使用的话还要创建多个变量,甚至关闭之后还要清空一些变量,应该可以简化一点。我写vue的时候奉行的都是数据驱动,像刚才那种写法没有问题,也更灵活,反正都是数据驱动的,即使错误了也只是某些地方没正确处理数据而已。

所以封装也需要保持这些优点,灵活可控。

以下是封装代码

一个.vue文件,表示封装的相应el-dialog代码

<template><el-dialog:title="configData.title+configData.afterTitle"v-model="configData.open"width="700px":close-on-click-modal="false"append-to-body><div class="edit-data-dialog"><h1>哈哈哈,代码封装</h1></div><template #footer><div class="dialog-footer"><el-button @click="configData.open = false">取 消</el-button></div></template></el-dialog>
</template><script>
/*** 数据修改对话框*/
import { defineComponent, ref, getCurrentInstance, reactive, nextTick } from 'vue';
import { mergeObjProperty } from '@/common/OtherTools';export default defineComponent({name: 'EditDataDialog',emits: ['onSuccess'],components: {},setup(_, { emit }) {const configMap = {//配置信息,初始化时使用open: {oldValue: false,},title: {oldValue: 'XX数据',},afterTitle: {oldValue: '',},isShow: {//是否只是展示oldValue: false,},};const configData = reactive(initDataByConfig(configData,{},configMap));const dataContainer = reactive({loading:false,form:{},list:[],});/** 初始化数据(外部调用) */function initData(show = true, data_ = {}, option = {}) {initDataByConfig(configData,option,configMap);dataContainer.list = [];dataContainer.form = {};dataContainer.loading = false;configData.open = show;nextTick(() => {dataContainer.form = data_;getDataInfo();});}/** 获取数据列表 */function getDataInfo() {}return {configData,initData,dataContainer,};},
});
</script><style lang="scss" scoped>
.edit-data-dialog {}
</style>

一个很简单的例子,不用创建多个变量来控制显示以及标题和各种杂七杂八的状态,全部由外部指定,再由initDataByConfig方法初始化。

以下是initDataByConfig方法的代码

/** * 根据配置信息初始化对象* 如果 option 有该属性则使用该属性,没有则初始化* configMap example*  const configMap = {//配置信息,初始化时使用open: {oldValue: false,},title: {oldValue: '入库',},afterTitle: {oldValue: '',},isShow: {//是否只是展示oldValue: false,},};*/
export function initDataByConfig(data = {}, configOption = {}, configMap = {}) {configOption = configOption || {};Object.keys(configMap).forEach(key => {//初始化一些配置信息if (Object.prototype.hasOwnProperty.call(configOption, key)) {data[key] = configOption[key];} else {if (typeof configMap[key].oldValue == 'function') {data[key] = configMap[key].oldValue();} else {data[key] = configMap[key].oldValue;}}});return data;
}

使用的话直接引用然后用ref获取组件实例调用initData方法就行了。

这是我目前对el-dialog使用的简单封装,所有数据皆可外部指定且不用创建多个变量,更灵活可控。

反正就是好用的非常。

有些封装不仅仅是模块分离,还有代码分离,反正就是一句话,代码是先写给人看的,然后才是机器。我奉行的封装是必要才封装,不然是不会去封装的。

文章原文

http://www.tj-hxxt.cn/news/99881.html

相关文章:

  • 南充房产网南充房产信息网seo顾问推推蛙
  • 网站开发是什么专业百度广告软文是什么意思
  • 传动设备 技术支持 东莞网站建设软文代写费用
  • 做app和做网站相同和区别百度一下官方下载安装
  • 宁海有做网站的吗会计培训班的费用是多少
  • 如何做淘宝代购网站设计全世界足球排名前十位
  • 兰州商城网站建代理公司注册
  • 学历提升快速拿证seo销售话术开场白
  • 客服外包公司加盟seo推广百度百科
  • 网站改版怎么做网站快速刷排名工具
  • 深圳网站建设 网站设计合肥网站推广电话
  • 做域名跳转非法网站负什么责任seo优化服务商
  • 绵阳最有实力的公司网站建设网络推广有哪些渠道
  • 做网页设计卖钱的网站精准大数据获客系统
  • 关于网站建设的申请网站seo关键词排名优化
  • 音乐网站的音乐列表如何做百度关键词排名点击器
  • 推广网站建设seo排名软件怎么做
  • ps做网站的时候分辨率是2021年网络热点舆论
  • 积分网站运营建设投标书推广网站软文
  • 网站怎么做搜索引擎优化_网站按天扣费优化推广
  • 建立公司网站的重点大型网站seo课程
  • 购物网站开发的必要性网站怎么优化到首页
  • 中小企业网站建设 网络营销做网站优化哪家公司好
  • 网站搭建空间百度推广手机登录
  • 企业网站建设深圳百度手机下载安装
  • 临沂网站建设设计公司seo求职信息
  • 基于java框架的网站开发可以商用的电视app永久软件
  • 有什么网站可以下做闭软件百度手游app下载
  • 母婴网站建设方案如何做企业网站
  • 排版漂亮的网站历史权重查询