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

北京做网站制作公司四川疫情最新消息

北京做网站制作公司,四川疫情最新消息,wordpress登录名密码,河东做网站的公司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.yidumall.com/news/32965.html

相关文章:

  • 哪个网站做推销产品游戏代理是怎么赚钱的如何代理游戏
  • e4a怎么做网站app企业网站多少钱一年
  • 曲阜做网站哪家好个人免费自助建站网站
  • 响应式企业网站建设网络营销师培训费用是多少
  • 一个静态网站开发考虑什么关键词怎么优化到百度首页
  • 做网站的难题兰州网络推广推广机构
  • 网站建设标题武汉seo顾问
  • 温州市建设小学学校网站加强服务保障满足群众急需ruu7
  • 个人网站设计要求济南疫情最新情况
  • 公司做网站需要网站维护人员吗怎样打百度人工客服热线
  • b2b网站怎么做推广网络营销策划方案格式
  • 石家庄做网站排名公司百度外链查询工具
  • 石家庄建站网络营销推广的5种方法
  • 形容网站做的好处拉新推广怎么找渠道
  • 使用nas建设网站百度电脑版网页
  • 建设通网站联系电话百度云盘官网登录入口
  • 国家标准化建设管理委员会官方网站软文的概念是什么
  • 陕西建设技术学院网站沈阳网站建设制作公司
  • 做网站一定要实名认证吗永久免费自助建站系统
  • 合肥哪家制作网站今日小说搜索风云榜
  • 做外贸网站选美国服务器的费用哪个平台可以买卖链接
  • 做网站属于无形资产还是费用海洋seo
  • 济南网络电视台建站优化公司
  • 上海好的高端网站建设免费建一级域名网站
  • 外贸网站如何选择域名com域名注册
  • 网站的结构设计seo关键词选取工具
  • 网站文章收录慢杭州seo网站推广
  • 网站建设技术分为哪些方向济南seo关键词优化方案
  • wordpress4.0.1百度快速seo
  • seo网站优化优化排名外贸建站公司