iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >VUE中filters过滤器的两种用法实例
  • 586
分享到

VUE中filters过滤器的两种用法实例

2024-04-02 19:04:59 586人浏览 独家记忆
摘要

目录前言一、全局过滤器全局过滤器之单一挂载全局过滤器之批量挂载二、组件过滤器附:过滤器中传入多个参数总结前言 vue.js 允许我们自定义过滤器,可被用于一些常见的文本格式化。过滤器

前言

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

<!-- 在双花括号中 -->
<div>{{ message | capitalize }}</div>
 
<!-- 在 `v-bind` 中 -->
<div v-bind:id="rawId | fORMatId"></div>

一、全局过滤器

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

使用的时候很简单,只需要在入口文件全局引入此过滤器即可,使用 Vue.filter(key, value) 引入。

比如,Java后端返回的时间戳精确到秒,而js中的时间戳是用毫秒表示,则可以定义一个转换时间戳的全局过滤器:

//main.js
import Vue from 'vue'
Vue.filter('millisecond', (value) => {
  if (!value) return ''
  value = value.toString()
  return value.charAt(0).toUpperCase() + value.slice(1)
})

在需要使用的组件使用:

<div>{{1516101106 | millisecond}}</div>

全局过滤器之单一挂载


<template>
   <!-- 2021-12-20 19:14:18 -->
  <div>{{ 1639998858000 | dateFormat("yyyy/MM/dd HH:mm:ss") }}</div>
</template>
 
Vue.filter('dateFormat', function (dateTmp, fmtTmp) {
  let fmt = fmtTmp
  let date = dateTmp
 
  if (!fmt) {
    fmt = 'yyyy.MM.dd'
  }
  if (!(date instanceof Date)) {
    date = new Date(date)
  }
  let o = {
    'M+': date.getMonth() + 1, // 月份
    'd+': date.getDate(), // 日
    '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), // 季度
    'S': date.getMilliseconds() // 毫秒
  }
  let week = {
    '0': '日',
    '1': '一',
    '2': '二',
    '3': '三',
    '4': '四',
    '5': '五',
    '6': '六'
  }
 
  if (/(y+)/.test(fmt)) {
    fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
  }
  if (/(E+)/.test(fmt)) {
    fmt = fmt.replace(RegExp.$1, ((RegExp.$1.length > 1) ? (RegExp.$1.length > 2 ? '星期' : '周') : '') + week[date.getDay() + ''])
  }
  for (var k in o) {
    if (new RegExp('(' + k + ')').test(fmt)) {
      fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)))
    }
  }
  return fmt
});

全局过滤器之批量挂载

//定义方法
//filters.js
export function slice (temp,num) {
    return temp.slice(0,num);
}
//挂载
//main.js
import * as filters from '@/assets/js/filters';
 
Object.keys(filters).forEach(key => {
    Vue.filter(key, filters[key]);
});
//调用
<!-- 1234 -->
<div>{{ '123456' | slice(4) }} </div>

二、组件过滤器

组件过滤器更简单,只需在对应组件中定义 filters 即可,不过只针对本组件有效。

比如定义一个首字母大写的过滤器:

//定义方法
export default {
  filters: {
    capitalize: function (value) {
      if (!value) return ''
      value = value.toString()
      return value.charAt(0).toUpperCase() + value.slice(1)
    }
  }
}

例子例子

<template>
  <!-- 我要被过... -->
  <div>{{ msg | setSize }}</div>
</template>
 
<script>
export default {
  data() {
    return {
      msg: "我要被过滤",
    };
  },
  filters: {
    setSize(value) {
      if (value.length > 4) {
        return value.splice(0, 4) + "...";
      } else {
        return value;
      }
    },
  },
};
</script>

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

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

{{ message | filterA('arg1', arg2) }}

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

<template>
  <div class="test">
    <!-- 要过滤的数据,永远是第一个参数;通过filter函数,传递的参数,依次排在后面。 -->
    <p>{{ new Date() | filter_dateFormat }}</p>
    <p>{{ new Date() | filter_dateFormat('YYYY-MM-DD') }}</p>
    <p>{{ new Date() | filter_dateFormat('YYYY-MM-DD', count) }}</p>
  </div>
</template>
<script src="https://cdn.bootCSS.com/moment.js/2.24.0/moment.js"></script>
<script>
export default {
  data() {
    return {
      count: 10
    };
  },
  filters: {
    filter_dateFormat(date, format, count) {
      return (
        moment(date).format(format || "YYYY-MM-DD HH:mm:ss") +
        (count ? " -- " + count : "")
      );
    }
  }
};
</script>
 
<style lang="scss" scoped>
.test {
  color: black;
}
</style>

总结

到此这篇关于VUE中filters过滤器的两种用法的文章就介绍到这了,更多相关VUE filters过滤器用法内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: VUE中filters过滤器的两种用法实例

本文链接: https://www.lsjlt.com/news/147615.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • VUE中filters过滤器的两种用法实例
    目录前言一、全局过滤器全局过滤器之单一挂载全局过滤器之批量挂载二、组件过滤器附:过滤器中传入多个参数总结前言 Vue.js 允许我们自定义过滤器,可被用于一些常见的文本格式化。过滤器...
    99+
    2024-04-02
  • VUE中的filters过滤器使用方法
    目录前言一、全局过滤器1、全局过滤器之单一挂载2、全局过滤器之批量挂载二、组件过滤器前言 Vue.js 允许我们自定义过滤器,可被用于一些常见的文本格式化。过滤器可以用在两个地方:双...
    99+
    2024-04-02
  • Vue 中filters过滤器如何使用
    这篇文章给大家介绍Vue 中filters过滤器如何使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1、示例代码采用vue单文件组件,使用moment插件格式化日期<templ...
    99+
    2024-04-02
  • VUE中的filters过滤器如何使用
    这篇文章主要讲解了“VUE中的filters过滤器如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“VUE中的filters过滤器如何使用”吧!前言Vue.js 允许我们自定义过滤器,可...
    99+
    2023-06-29
  • Vue中如何使用filters过滤器
    这篇文章主要为大家展示了“Vue中如何使用filters过滤器”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Vue中如何使用filters过滤器”这篇文章吧。Vue.js 允许我们自定义过滤器,...
    99+
    2023-06-29
  • Vue的filters过滤器怎么使用
    本篇内容主要讲解“Vue的filters过滤器怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue的filters过滤器怎么使用”吧!1、示例代码采用vue单文件组件,使用moment插...
    99+
    2023-07-04
  • 一文详解Vue中过滤器filters的使用
    目录一、局部过滤器二、全局过滤器三、过滤器串联四、过滤器接收多个参数 Vue.js允许自定义过滤器,过滤器的作用可被用于一些常见的文本格式化(也就是修饰文本,但是文本内容不...
    99+
    2023-05-17
    Vue过滤器filters使用 Vue过滤器filters Vue过滤器
  • vue中使用过滤器filters的this为undefined的问题
    目录使用过滤器filters的this为undefinedvue filter过滤器的用法使用过滤器filters的this为undefined vue中的过滤器更偏向于对文本数据的...
    99+
    2024-04-02
  • Vue过滤器filters的用法及时间戳转换问题
    目录一.速识概念:二.局部过滤器:三.全局过滤器:四.扩展:五.总结:本文分享自华为云社区《三分钟掌握Vue过滤器filters及时间戳转换》,作者:北极光之夜。。 一.速识概念: ...
    99+
    2024-04-02
  • django filters实现数据过滤的示例代码
    常用 当前循环. 作用 ...
    99+
    2024-04-02
  • vue中过滤器的用法
    一、过滤器 过滤器是vue中的一个特性,作用是用于对文本进行格式化的作用。 注意:在vue 1.0中有内置的过滤器,在2.0中去掉了内置过滤器,只有自定义过滤器 二、使用位置 过滤器...
    99+
    2024-04-02
  • vue中如何实现filters传入两个参数和使用两个filters
    这篇文章主要为大家展示了“vue中如何实现filters传入两个参数和使用两个filters”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue中如何实现fil...
    99+
    2024-04-02
  • MySQL过滤重复数据的两种方法示例
    目录方法1:加关键字 DISTINCT方法2:用GROUP By 分组最后方法1:加关键字 DISTINCT 在mysql中,可以利用“SELECT”...
    99+
    2023-05-16
    mysql查询过滤重复数据 mysql如何去除重复数据 数据库过滤重复语句
  • ASP.NETCore模型验证过滤器的两种实现方法
    目录第一种方法:.Net Core 禁用模型验证过滤器第二种方法:自动替换默认模型验证 在.Net Core的时代中,框架会帮你自动验证model的state,也就是Mod...
    99+
    2024-04-02
  • Vue中过滤器定义以及使用方法实例
    目录介绍Vue中过滤器如何使用组件内过滤器全局过滤器补充:vue中的过滤器可以格式化以及美化内容总结介绍 过滤器实质不改变原始数据,只是对数据进行加工处理后返回过滤后的数据再进行调用...
    99+
    2022-11-13
    vue过滤器的使用 vue的过滤器 vue的过滤器语法
  • vue3.0中setup的两种用法实例
    目录前言一、setup函数的特性以及作用二、setup函数的注意点:用法1:结合ref使用用法2:代码分割总结前言 这篇文章主要介绍了vue3.0中setup使用,本文通过两种用法给...
    99+
    2024-04-02
  • 解决vue过滤器filters获取不到this对象的问题
    目录vue过滤器filters获取不到this对象原理下面举个例子Vue filters this指向问题Vue实例中filter不依赖于当前vue实例上下文vue过滤器filter...
    99+
    2024-04-02
  • Vue基础语法之计算属性(computed)、侦听器(watch)、过滤器(filters)详解
    目录1、Vue 实例选项2、计算属性(computed)2.1、computed 的基本用法2.2、computed 作为函数传参2.3、计算属性和函数的区别3、侦听器(watch)...
    99+
    2022-11-13
    vue计算属性侦听器 vue计算属性侦听器 vue过滤器
  • VUE过滤器的使用方法
    这篇文章主要讲解了“VUE过滤器的使用方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“VUE过滤器的使用方法”吧!1. 定义一个日期格式化函数都9012了...
    99+
    2024-04-02
  • Vue中过滤器怎么用
    这篇文章主要为大家展示了“Vue中过滤器怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Vue中过滤器怎么用”这篇文章吧。前言最近在项目的开发中,出现一些格...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作