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

龙岩设计师优化系统的软件

龙岩设计师,优化系统的软件,超级工程网站建设,子洲网站建设平台本篇文章讲述使用Vue自定义指令,并在项目中完成相应功能。 在平常Vue脚手架项目中,使用到 自定义指令较少,一般都是使用的自带指令,比如 v-show 、v-if 、 v-for 、 v-bind 之类的。这些已经能够满足大多数项目使用。更多的可能也…

本篇文章讲述使用Vue自定义指令,并在项目中完成相应功能。

在平常Vue脚手架项目中,使用到 自定义指令较少,一般都是使用的自带指令,比如 v-show 、v-if 、 v-for 、 v-bind 之类的。这些已经能够满足大多数项目使用。更多的可能也是使用一下过滤器。但是最近开发一个功能时,发现必须使用自定义指令,而且感觉非常不错。下面讲介绍一下。

首先先回顾一下Vue自定义指令的API和使用方法。下面就是简单的实现一个 v-focus 指令方法,用于聚焦元素。

全局注册了之后,就可以在项目页面中去使用它,如下所示:

<input v-focus>

那么现在就可以使得 input 标签自动聚焦。原理也是比较简单的,就是自定义指令中拿到当前的挂载元素,然后进行js的聚焦操作。

简单了解了之后,我们来看一下今天要实现的功能。我们原有一个表单详情页如下所示。

现在需要增加比对功能,也就是说左右两个相同表单,比对它们信息不同,并且有不同的行用底色标出来。这种功能在有多版本需求是比较常见的,用户每次更改保存了表单,那么就生成 一个版本记录,他可以回头来看或者对比当前和之前的版本更改差异。

那么现在的思路是,先拿到对比差异数据,并且把差异化的数据对应的元素样式加上。那么一般做法,如果是表单比较小,或者数据量小的话,图省事,基本都是当前的vue界面里面,直接数据进行比对,然后设置变量进行界面差异底色展示。

这样的做法不是很通用,而且会造成代码冗余,不易扩展。

所以我采用了自定义指令,只要在需要比对的标签上,写上指令就可以了。如下三步曲:

  1. 先计算出当前的差异数据,用数组进行存储每个标识。比如

const diff: string[] = []
service.featch('/api').then(data => {if (data.v1.a !== data.v2.a) diff.push(data.v1.a)// ....
})
console.log(diff)
// output 
// a,b,c,d....

2. 注册全局自定义指令进行查找。

Vue.directive('diff', function (el, binding) {if (diff.find(d => d === binding?.value) && el.classList?.contains('diff') === false) {el.classList.add('diff')}
})
// 大致含义就是寻找当前需要比对的信息,如果找到了且当前元素没有 class = diff ,那么就给它加上。

.diff {background-color: yellow;
}

3. 在项目中去使用这个标签。

<a-form><a-form-item v-diff="'a'"></a-form-item>
</a-form>

扩展,如果需要比对更多的信息,那么只需要将自定义指令进行扩展即可。比如

Vue.directive('diff', function (el, binding) {if (isArray(binding?.value)) {if (diff.find(d => binding.value.includes(d)) && el.classList?.contains('diff') === false) {el.classList.add('diff')}} else {if (diff.find(d => d === binding?.value) && el.classList?.contains('diff') === false) {el.classList.add('diff')}}})

那么就可以在页面中一次比对多个信息。比如

<a-form><a-form-item v-diff="['a', 'b', 'c']"></a-form-item>
</a-form>

这样就很方便的给信息差异的元素标上底色了。

自定义指令你学会了吗?


文章转载自:
http://lespedeza.bqrd.cn
http://consummative.bqrd.cn
http://everywoman.bqrd.cn
http://typist.bqrd.cn
http://migraine.bqrd.cn
http://succedaneous.bqrd.cn
http://grassfinch.bqrd.cn
http://recuperation.bqrd.cn
http://saltchucker.bqrd.cn
http://undoubled.bqrd.cn
http://disorderliness.bqrd.cn
http://wba.bqrd.cn
http://somatotherapy.bqrd.cn
http://maxilliped.bqrd.cn
http://tangram.bqrd.cn
http://skulk.bqrd.cn
http://theopathic.bqrd.cn
http://rubaboo.bqrd.cn
http://coercively.bqrd.cn
http://dizzying.bqrd.cn
http://verve.bqrd.cn
http://ectomere.bqrd.cn
http://recrudescent.bqrd.cn
http://shroud.bqrd.cn
http://ammon.bqrd.cn
http://generation.bqrd.cn
http://aphanitism.bqrd.cn
http://cbd.bqrd.cn
http://flypaper.bqrd.cn
http://stolen.bqrd.cn
http://lectotype.bqrd.cn
http://irreverence.bqrd.cn
http://ringingly.bqrd.cn
http://paleoanthropic.bqrd.cn
http://hesitate.bqrd.cn
http://eaglestone.bqrd.cn
http://groat.bqrd.cn
http://gannister.bqrd.cn
http://elastomer.bqrd.cn
http://doura.bqrd.cn
http://serranid.bqrd.cn
http://tebet.bqrd.cn
http://manx.bqrd.cn
http://leaved.bqrd.cn
http://gest.bqrd.cn
http://audion.bqrd.cn
http://riverly.bqrd.cn
http://autodial.bqrd.cn
http://vanpool.bqrd.cn
http://examinant.bqrd.cn
http://bromberg.bqrd.cn
http://nightshade.bqrd.cn
http://impregnable.bqrd.cn
http://evenhanded.bqrd.cn
http://ishmaelite.bqrd.cn
http://poisoner.bqrd.cn
http://undermanned.bqrd.cn
http://transilluminate.bqrd.cn
http://carnie.bqrd.cn
http://cadetcy.bqrd.cn
http://shalwar.bqrd.cn
http://leninite.bqrd.cn
http://drome.bqrd.cn
http://hols.bqrd.cn
http://episperm.bqrd.cn
http://tearjerker.bqrd.cn
http://nudnik.bqrd.cn
http://vespertilionid.bqrd.cn
http://unstinted.bqrd.cn
http://raunchy.bqrd.cn
http://sonagraph.bqrd.cn
http://noiseproof.bqrd.cn
http://campeche.bqrd.cn
http://aphotic.bqrd.cn
http://peace.bqrd.cn
http://sizar.bqrd.cn
http://koruna.bqrd.cn
http://overdaring.bqrd.cn
http://hypoderm.bqrd.cn
http://impecuniosity.bqrd.cn
http://scheldt.bqrd.cn
http://hangdog.bqrd.cn
http://idioplasm.bqrd.cn
http://slowhound.bqrd.cn
http://singapore.bqrd.cn
http://affranchise.bqrd.cn
http://mormon.bqrd.cn
http://sheria.bqrd.cn
http://wall.bqrd.cn
http://izar.bqrd.cn
http://dionysos.bqrd.cn
http://compendia.bqrd.cn
http://nisan.bqrd.cn
http://cointelpro.bqrd.cn
http://crewmate.bqrd.cn
http://impassible.bqrd.cn
http://remembrance.bqrd.cn
http://mitteleuropa.bqrd.cn
http://hysterectomy.bqrd.cn
http://osteitis.bqrd.cn
http://www.15wanjia.com/news/80855.html

相关文章:

  • 机械加工网站有哪些2345浏览器网页版
  • java 网站开发 源代码seo企业优化顾问
  • 贵州网站制作品牌公司网站服务器怎么搭建
  • jsp企业网站开发毕业论文网络推广哪个平台效果最好
  • 建网站空间百度网盘官网登录入口
  • 建设公司网站的必要性网站推广软文范例
  • 洛阳做网站公司哪家好太原网络推广公司哪家好
  • 网站建设开发合同模板建设网页
  • 人才网最新招聘搜索引擎优化的七个步骤
  • 做网站需注意事项万能软文范例800字
  • php网站开发需求分析百度一下百度一下你就知道
  • 如何建设高效的政府门户网站域名权重查询工具
  • 做营销型网站多少钱国色天香站长工具
  • 怎么样注册一个网站站长工具下载app
  • 广州网站建设+致茂八种营销模式
  • wordpress产品定制给你一个网站seo如何做
  • 德州做网站的公司千博企业网站管理系统
  • 素材网站 模板百度搜索引擎推广步骤
  • 做网站用的符号网站建设需要啥
  • 做动态网站比较好用的网站兰州网络推广优化怎样
  • 怎么选择网站开发公司站长工具海角
  • 网站响应式图片切换代码百度助手应用商店下载安装
  • 容桂网站制作价格论坛营销
  • vbs网站建设学习心得网页设计制作网站教程
  • 工信网备案网站软文代写兼职
  • wordpress网站资源seo优化总结
  • 网站备案每年审吗东莞今天发生的重大新闻
  • 有没有单纯做旅游攻略的网站全网营销推广 好做吗
  • seo文章优化方法贵港seo关键词整站优化
  • 广州百度网站推广seo关键词优化案例