vue filter使用,vue filters

  vue filter使用,vue filters

  vue中滤镜的功能可以用于一些常见的文本格式化,即修改文本,但文本的内容不会改变。下面这篇文章主要介绍了VUE滤镜的两种用法,有需要的朋友可以参考一下。

  

目录

  前言1。单个安装全局过滤器。批量安装全局过滤器2。组件过滤器附件:传入过滤器的多个参数的摘要。

  

前言

  Vue.js允许我们自定义过滤器,可以用于一些常见的文本格式。过滤器可以用在两个地方:双花括号({undefined{ })插值和v-bind表达式(后者从2.1.0开始支持)。过滤器应该添加在JavaScript表达式的末尾,用“管道”符号表示。

  !-在双花括号里-

  div { { message capital } }/div

  !-在“v-bind”

  div v-bind:id= rawId formatId /div

  

一、全局过滤器

  定义一个全局过滤器很简单,你只需要导出一个方法。

  用起来很简单。你只需要在导入文件中全局引入这个过滤器,使用Vue.filter(key,value)引入即可。

  例如,如果Java backend返回的时间戳精确到秒,而JS中的时间戳以毫秒表示,则可以定义一个全局过滤器来转换时间戳:

  //main.js

  从“vue”导入Vue

  Vue.filter(毫秒,(值)={

  如果(!值)返回“”

  value=value.toString()

  返回值. charAt(0)。toUpperCase() value.slice(1)

  })

  在需要使用的组件中使用:

  div{{1516101106 毫秒}}/div

  

全局过滤器之单一挂载

  /**

  * dateTmp:要筛选的值

  * fmtTmp:参数传入,可以接收多个参数。

  */

  模板

  !- 2021-12-20 19:14:18 -

  div { { 1639998858000 date format( yyyy/MM/DD HH:MM:ss )} }/div

  /模板

  Vue.filter(dateFormat ,function (dateTmp,fmtTmp) {

  设fmt=fmtTmp

  let date=dateTmp

  如果(!fmt) {

  fmt=yyyy。嗯. dd

  }

  如果(!(日期的日期实例)){

  日期=新日期(日期)

  }

  让o={

   M : date.getMonth() 1,//month

   D : date.getDate(),//day

   h : date.getHours() % 12==0?12: date.getHours()% 12,//小时

   H : date.getHours(),//小时

   M : date.getMinutes(),//分钟

   S : date.getSeconds(),//秒

   q :math . floor((date . getmonth()3)/3),//quarter

  S: date.getMilliseconds() //毫秒

  }

  让week={

  0 :天,

  1 :一,

  2: 2,

  3 :三,

  4: 4,

  5: 5,

  6: 6

  }

  if (/(y )/。测试(fmt)) {

  fmt=fmt.replace(正则表达式。$1,(date.getFullYear() )。substr(4 - RegExp。$1.length))

  }

  if (/(E )/。测试(fmt)) {

  fmt=fmt.replace(正则表达式。$1,((RegExp。$1 .长度1)?(RegExp。$1 .长度2?Week: week ): )周[date.getDay() ])

  }

  for (var k in o) {

  if(new RegExp(( k ))。测试(fmt)) {

  fmt=fmt.replace(正则表达式。$1,(正则表达式。$1.length==1)?(o[k]) : ((00 o[k])。substr(( o[k])。长度)))

  }

  }

  返回fmt

  });

  

全局过滤器之批量挂载

  //定义方法

  //filter . js

  导出功能片(温度,数量){

  返回temp.slice(0,num);

  }

  //挂载

  //main.js

  从“@/assets/js/filters”导入*作为过滤器;

  Object.keys(过滤器)。forEach(key={

  Vue.filter(key,filters[key]);

  });

  //调用

  !- 1234 -

  div{{ 123456 slice(4) }} /div

  

二、组件过滤器

  组件更简单,只需在相应的组件中定义过滤器,但只对该组件有效。

  例如,用大写字母定义过滤器:

  //定义方法

  导出默认值{

  过滤器:{

  大写:函数(值){

  如果(!值)返回“”

  value=value.toString()

  返回值. charAt(0)。toUpperCase() value.slice(1)

  }

  }

  }

  例子

  模板

  !-我想成为.-

  div{{ msg setSize }}/div

  /模板

  脚本

  导出默认值{

  data() {

  返回{

  Msg:“我想被过滤”,

  };

  },

  过滤器:{

  集合大小(值){

  if (value.length 4) {

  返回值. splice(0,4) . ;

  }否则{

  返回值;

  }

  },

  },

  };

  /脚本

  

附:过滤器中传入多个参数

  过滤器是一个JavaScript函数,因此它可以接收参数:

  {{ message filterA(arg1 ,arg2) }}

  这里,filterA被定义为接收三个参数的过滤函数。message的值是第一个参数,普通字符串“arg1”是第二个参数,表达式arg2的值是第三个参数。

  模板

  测试

  !-要过滤的数据总是第一个参数;通过过滤函数,传递的参数依次排在后面。-

  p { { new Date() filter _ Date format } }/p

  p { { new Date() filter _ Date format( YYYY-MM-DD )} }/p

  p { { new Date() filter _ Date format( YYYY-MM-DD ,count) }}/p

  /div

  /模板

  script src= https://cdn . bootcss . com/moment . js/2 . 24 . 0/moment . js /script

  脚本

  导出默认值{

  data() {

  返回{

  计数:10

  };

  },

  过滤器:{

  filter_dateFormat(日期、格式、计数){

  返回(

  时刻(日期)。格式(格式 YYYY-MM-DD HH:mm:ss )

  (算吗?-计数: )

  );

  }

  }

  };

  /脚本

  style lang=scss 范围。测试{

  颜色:黑色;

  }

  /风格

  

总结

  这就是这篇关于过滤器在VUE的两种用途的文章。有关VUEfilters用法的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: