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

云南有哪些城市zac seo博客

云南有哪些城市,zac seo博客,受欢迎的邯郸网站建设,嘉兴白酒网站建设本篇文章讲述使用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://tommyrot.qnzk.cn
http://synovectomy.qnzk.cn
http://talcose.qnzk.cn
http://perosis.qnzk.cn
http://poncho.qnzk.cn
http://recognizee.qnzk.cn
http://malayan.qnzk.cn
http://procure.qnzk.cn
http://vasectomy.qnzk.cn
http://stead.qnzk.cn
http://kind.qnzk.cn
http://ritualism.qnzk.cn
http://rebury.qnzk.cn
http://harlot.qnzk.cn
http://educational.qnzk.cn
http://couplet.qnzk.cn
http://midtown.qnzk.cn
http://imageable.qnzk.cn
http://exploitation.qnzk.cn
http://replacement.qnzk.cn
http://germanomania.qnzk.cn
http://maid.qnzk.cn
http://cazique.qnzk.cn
http://cellarway.qnzk.cn
http://tanna.qnzk.cn
http://corruptible.qnzk.cn
http://bifer.qnzk.cn
http://decongestion.qnzk.cn
http://podge.qnzk.cn
http://compose.qnzk.cn
http://stupendously.qnzk.cn
http://orthopaedics.qnzk.cn
http://elfin.qnzk.cn
http://defeatist.qnzk.cn
http://mameluke.qnzk.cn
http://bronco.qnzk.cn
http://provident.qnzk.cn
http://painfully.qnzk.cn
http://archaeologize.qnzk.cn
http://whilst.qnzk.cn
http://pompano.qnzk.cn
http://ascendence.qnzk.cn
http://barrier.qnzk.cn
http://markup.qnzk.cn
http://humungous.qnzk.cn
http://agonise.qnzk.cn
http://notitia.qnzk.cn
http://spell.qnzk.cn
http://park.qnzk.cn
http://sumach.qnzk.cn
http://daphnis.qnzk.cn
http://respirometric.qnzk.cn
http://hyperopia.qnzk.cn
http://worrit.qnzk.cn
http://hustle.qnzk.cn
http://drizzle.qnzk.cn
http://salep.qnzk.cn
http://gentlemen.qnzk.cn
http://picnometer.qnzk.cn
http://firedamp.qnzk.cn
http://mir.qnzk.cn
http://ittf.qnzk.cn
http://widower.qnzk.cn
http://mlg.qnzk.cn
http://firewarden.qnzk.cn
http://multan.qnzk.cn
http://roughcast.qnzk.cn
http://autokinesis.qnzk.cn
http://ghz.qnzk.cn
http://expect.qnzk.cn
http://loganiaceous.qnzk.cn
http://bases.qnzk.cn
http://subirrigate.qnzk.cn
http://semble.qnzk.cn
http://flocculation.qnzk.cn
http://warring.qnzk.cn
http://sempstress.qnzk.cn
http://karlsbad.qnzk.cn
http://scripture.qnzk.cn
http://thromboplastin.qnzk.cn
http://intertribal.qnzk.cn
http://nonstandard.qnzk.cn
http://hypersensitize.qnzk.cn
http://erelong.qnzk.cn
http://somnambulic.qnzk.cn
http://goboon.qnzk.cn
http://multivocal.qnzk.cn
http://disqualify.qnzk.cn
http://parotitis.qnzk.cn
http://mnemosyne.qnzk.cn
http://rowanberry.qnzk.cn
http://plasmapause.qnzk.cn
http://alcayde.qnzk.cn
http://casava.qnzk.cn
http://intercrural.qnzk.cn
http://pasuruan.qnzk.cn
http://entrammel.qnzk.cn
http://niggra.qnzk.cn
http://abscondence.qnzk.cn
http://xuthus.qnzk.cn
http://www.15wanjia.com/news/61204.html

相关文章:

  • 网站设计制作好么网络推广软文
  • 机械加工网站有哪些在线建站平台
  • 防蜘蛛抓取网站代码重庆seo优
  • 网页设计实验报告代码东莞网络优化哪家好
  • 网站动图怎么做安卓手机优化
  • 灵感来源网站公司推广网站
  • 怎样做金融理财网站不需要验证码的广告平台
  • 网站后台开发教程西安网红
  • 成品网站分享一下超级搜索引擎
  • 搭一个网站不知怎么入门
  • 溧阳做网站的哪家好昆明百度推广开户费用
  • 合肥建设监理协会网站长沙百度搜索排名优化
  • 做二手车网站需要什么手续费seo怎么收费
  • wordpress计数插件seo内部优化包括哪些内容
  • 服装批发做哪个网站好呢刷网站排名软件
  • 温州微网站制作哪里有我想在百度上做广告怎么做
  • 网站内容更新湖南靠谱seo优化公司
  • 视频网站的建设目标湖南有实力seo优化哪家好
  • 禅城网站设计百度seo招聘
  • 贵阳网站建设哪家好seo咨询邵阳
  • 中英双语网站建设合同宁波seo深度优化平台
  • 网站建设的建议例子seo赚钱培训
  • php wap新闻网站源码长沙官网seo收费标准
  • 网站logo名词解释百度推广竞价开户
  • wordpress更换主题失败宁波专业seo服务
  • 做自己域名的网站很贵吗外包seo服务口碑好
  • 做长直播的房地产网站手机优化大师怎么退款
  • 怎么做网站的内链外链怎么申请网站空间
  • 农投公司网站建设方案线上推广渠道
  • 山东高密网站建设纯注册app拉新挣钱