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

如何给网站更换域名石家庄模板建站代理

如何给网站更换域名,石家庄模板建站代理,网站建设前台后台教,室内设计师官网继《vue之全局请求loading》之后,总觉得全局loading有时候不太…友好,所以总想将loading加到被点击的元素上面,于是乎就想到了点击事件与请求方法相关联,本想重写组件的click方法,但是这样对组件的影响太大&#xff0c…

继《vue之全局请求loading》之后,总觉得全局loading有时候不太…友好,所以总想将loading加到被点击的元素上面,于是乎就想到了点击事件与请求方法相关联,本想重写组件的click方法,但是这样对组件的影响太大,所以放弃了,最终想到了Vue全局指令。

一、实现原理

通过全局指令代替组件事件,在全局指令中绑定click事件,当dom被点击时,给dom添加禁用状态,利用闭包等方式获取到绑定的方法,通过await等待方法执行完毕然后去掉禁用;

二、使用

@click替换为v-con-click

<el-button type="primary" icon="el-icon-search" size="mini" v-con-click="handleQuery">搜索</el-button>

三、注意事项

1. 同步和异步回调只能选一种

同步通过await来等待去除禁用,而异步回调则是由自己判断去掉禁用。

同步(没有传参):

handleQuery(e) {console.log(e); // 没有传参时,默认为点击事件this.queryParams.pageNum = 1;await this.getList();
}

异步回调(没有传参):

handleQuery() {console.log(e); // 没有传参,默认为点击事件return (removeDisabled) => {this.queryParams.pageNum = 1;this.getList().then(res => {// 去掉组件禁用removeDisabled();})}
}

2. 异步回调需闭包

因需要回传回调方法,所以需添加一层闭包;

3. 有传参的方法需闭包

因有参数的方法相当于绑定时会自动执行一遍,所以添加闭包,来获取执行代码。

handleQuery(d) {return (removeDisabled) => {this.queryParams.pageNum = 1;this.getList().then(res => {// 去掉组件禁用removeDisabled();})}
}

所以对于有参数的方法异步回调就相当于两次闭包

handleQuery(d) {return (e) => {console.log(e); // 点击事件return (removeDisabled) => {// 去掉组件禁用removeDisabled();}}
}

3. 其他问题

因想法特殊,可能会出现未知问题,目前暂未发现其他问题,如有问题,欢迎即使提出。

四、代码

const conClickDirective = {bind(el, binding, vnode) {el.addEventListener('click', async e => {let hasCb = false;el.classList.add('is-disabled');el.disabled = true;// 这里写点击事件的逻辑if (binding.value instanceof Function) {const res = await binding.value(e);if (res instanceof Function) {const d = res(() => {el.disabled = false;el.classList.remove('is-disabled');})if (!(d instanceof Promise)) {hasCb = true;} else {await d;}}}if (!hasCb) {el.disabled = false;el.classList.remove('is-disabled');}});}
};// 全局注册自定义指令
Vue.directive('con-click', conClickDirective);

五、进阶版

进阶版:《Vue全局事件防止重复点击(等待请求)【进阶版】》

http://www.yayakq.cn/news/480337/

相关文章:

  • 石柱网站开发windows优化大师要钱
  • wordpress 众筹网站wordpress自媒体主题免费下载
  • 成都比较好的网站设计公司怎样建设网站卖农产品
  • 淘宝网站怎么做视频教程二级建造师考试
  • 网站优化比较好的公司手机上如何制作app
  • 温州 网站优化做地产网站哪家好
  • 苏州教育学会网站建设仙居建设规划局网站
  • 深圳优化网站排名软件做视频网站要多大的主机
  • 你第一个物流网站建设方案网站的商业授权
  • 购物网站有哪些平台网站怎么做会让神马搜索到
  • wordpress音乐站源码律师微网站建设
  • 东营企业网站排名注册域名怎么做网站
  • 新增网站推广网站建设 投标书
  • 泉州网站快速排名提升郑州网站备案地址
  • 网站开发前后台整个流程做网站是做广告吗
  • 网站设计常识百度极速版下载安装最新版
  • 网站开发asp.net帮企业外卖网站做推
  • 上海医疗 网站制作seo是什么职业合法吗
  • 做网站设计用到的软件网站服务方案
  • wordpress没法做大网站做ar网站
  • 网站注册页面怎么做阿里云成功备案的网站增加域名
  • 商务网站建设实践实训心得设计logo的方法
  • 微信建微网站h5网页设计报告
  • 聊城建设银行网站成功的网站建设
  • 南昌网站建设培训网站建设科技北京有限公司
  • 网站的需求分析包括哪些wordpress不支持中文
  • mvc做网站用的多不多免费代理免费拿货
  • 建设银行官方网站广州网站怎么可以做视频播放
  • 建设实业公司网站设计模板免费建站绑定域名
  • 表格网站怎么做制作图片的软件哪个好用