学习笔记03 - vue过滤器

vue过滤器

用于格式化一些数据,比如英文转换大小写,价格转换小数点后两位格式

可以全局注册/局部使用

示例(全局注册)

datetime不足两位补0

import Vue from 'vue'

/**
 * 时间数据处理
 */
Vue.filter('filterTime', function (value) {
  if (!value) return ''

  if (value.indexOf(':') === -1) return value

  let result = ''
  const arr = value.split(':')

  // 时
  if (parseInt(arr[0]) < 10) {
    result = '0' + arr[0]
  } else {
    result = arr[0]
  }

  // 分
  if (parseInt(arr[1]) < 10) {
    result = result + ':0' + arr[1]
  } else {
    result = result + ':' + arr[1]
  }

  // 秒
  if (parseInt(arr[2]) < 10) {
    result = result + ':0' + arr[2]
  } else {
    result = result + ':' + arr[2]
  }

  return result
})

 

示例(局部注册)

放在某个组件文件内

filters: {
    filterTime: function (value) {
      if (!value) return ''

      if (value.indexOf(':') === -1) return value

      let result = ''
      const arr = value.split(':')

      // 时
      if (parseInt(arr[0]) < 10) {
        result = '0' + arr[0]
      } else {
        result = arr[0]
      }

      // 分
      if (parseInt(arr[1]) < 10) {
        result = result + ':0' + arr[1]
      } else {
        result = result + ':' + arr[1]
      }

      // 秒
      if (parseInt(arr[2]) < 10) {
        result = result + ':0' + arr[2]
      } else {
        result = result + ':' + arr[2]
      }

      return result
    }
  },

写好过滤器后使用:

<!-- 在双花括号中 -->
{{ message | filterTime}}

<!-- 在 `v-bind` 中 -->
<div v-bind:id="rawId | filterTime"></div>

多过滤器使用:

{{ message | filterA | filterB }}  message 传给A, A过滤后作为参数传给B

参考资料:

https://www.jianshu.com/p/ad21df1914c5

https://cn.vuejs.org/v2/guide/filters.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值