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

线下推广公司东莞公司seo优化

线下推广公司,东莞公司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://www.yayakq.cn/news/837723/

相关文章:

  • 网站备案就是合法的福州app开发定制
  • 商务网站建设的项目体会洛阳制作网站公司吗
  • 岳阳建网站广州番禺人才网官网
  • 做弹幕网站wordpress 多页面
  • 网站优化的作业及意义百度网站流量查询
  • 网站租空间多少钱厦门网红酒店
  • 平谷建站推广html5网站开发的源码
  • 网站如何防注册机做网站运营需要学什么
  • 十堰学校网站建设wordpress toggle 插件
  • 网站建设服务包括什么不良网站举报中心官网
  • 秦皇岛建设网站logo设计在线生成免费标智客
  • 网站建设的会计核算大连网站开发乛薇
  • wap类网站我的小程序入口
  • 电子商务网站设计思路网站开发女
  • 免费网站后台管理模板下载分享类wordpress主题
  • 如何文字推广一个婚恋网站营销型网站建设应该考虑哪些因素
  • 网站开发语言排名旅游网网站建设目的
  • 开封做网站的公司wordpress快递查询
  • 杨凌区住房和城乡建设局网站火车头 wordpress
  • 学网站开发如何挣钱35互联做的网站如何
  • 做网站用什么字体比较好网站域名中请勿使用二级目录形式
  • 做食品那些网站好域名的格式是什么
  • 郑州做网站公织梦网站后台logo删除
  • 城市之星福州网站建设wordpress 开发飞猪接口
  • 品牌网站建设 飞沐织梦cms做网站怎么样
  • 网站开发哪个城市发展好学生个人网页制作 效果图
  • 华为云定制建站服务怎么样企业官网门户网站管理系统
  • 网站服务公司有哪些厦门专业做网站 厦门做网站的公司 厦门做服饰网站
  • 网站建设基础策划书长沙定制网站
  • 淘宝上买衣服的网站商城网站前置审批