Vue中过滤器定义以及使用方法实例

 更新时间:2022年11月01日 15:39:30   作者:十七喜欢前端  
过滤器的功能是对要显示的数据进行格式化后再显示,其并没有改变原本的数据,只是产生新的对应的数据,下面这篇文章主要给大家介绍了关于Vue中过滤器定义以及使用方法的相关资料,需要的朋友可以参考下

介绍

过滤器实质不改变原始数据,只是对数据进行加工处理后返回过滤后的数据再进行调用处理。我们看一下官方的定义:

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

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

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

Vue中过滤器如何使用

组件内过滤器

注意:过滤器函数接收的第一个值是message,依次是传的值。

过滤器是可以叠加的,后面过滤器接收前面过滤器的返回值。

如这段代码:

<div id="app">
	<div v-bind:id="message|capitalize('a','b')|gl"></div>
</div>

它的过滤器 capitalize的第一个参数是message,第二个第三个参数是字符串a和b

在组件的选项中定义

filters:{
		capitalize:function(value,x,y){
			return value+x+y;
		},
		gl:function(value){
			value=value.toString();
			return value.toUpperCase();
		}
	}

全局过滤器

全局过滤器使用:Vue.filter( filterName,( )=>{ return // 数据处理结果 } )

  • 参数一:是过滤器的名字,也就是管道符后边的处理函数;
  • 参数二:处理函数,处理函数的参数同局部过滤器(组件内过滤器)一样

注意:当全局过滤器和局部过滤器重名时,会采用局部过滤器

全局定义

   Vue.filter("addPriceIcon",function(value){
            console.log(value)//200
            return '¥' + value
        })
    
   new Vue({
   ...
   })

或者

// 实现一个给所有数字小数部分都变成两位,没有后补零
export const yuan = value =>
  value
    ? (value / 100).toFixed(2)
    : value;
 
export default {
  install(Vue) {
    Vue.filter('yuan', yuan);
  }
};

在main.js里引入

import filters from '@/filter';
Vue.use(filters);

可以在任意组件内使用只能是在v-bind或者双花括号插值里用

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

补充:vue中的过滤器可以格式化以及美化内容

从后台接受数据过来的时候时间是时间毫秒,我选择了使用过滤器,接下来给大家分享一下使用过程

1.在全局配置过滤器 main.js文件里面

代码:

// 时间过滤器
Vue.filter('dateFilter', function (val) {
const time = new Date(val)
const y = time.getFullYear()
const m = (time.getMonth() + 1 + '').padStart(2, '0')
const d = (time.getDate() + '').padStart(2, '0')
const hh = (time.getHours() + '').padStart(2, '0')
const mm = (time.getMinutes() + '').padStart(2, '0')
const ss = (time.getSeconds() + '').padStart(2, '0')
return y + '年' + m + '月' + d + '日' + '' + hh + ':' + mm + ':' + ss
})

截图:

2.使用过滤器 在需要的组件使用

代码:

{{essayData.times | dateFilter}} //dateFileter是过滤器名 essayData是需要过滤的数据

总结

vue中过滤器的作用可被用于一些常见的文本格式化。(也就是修饰文本,但是文本内容不会改变)

过滤器分全局过滤器和局部过滤器,全局过滤器在项目中使用频率很高,要掌握

过滤器可以用在两个地方:双花括号插值 或 v-bind表达式。

到此这篇关于Vue中过滤器定义以及使用方法的文章就介绍到这了,更多相关Vue过滤器定义使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue2实现数据请求显示loading图

    vue2实现数据请求显示loading图

    这篇文章主要为大家详细介绍了vue2实现数据请求显示loading图,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • vue-cli 默认路由再子路由选中下的选中状态问题及解决代码

    vue-cli 默认路由再子路由选中下的选中状态问题及解决代码

    这篇文章主要介绍了vue-cli 默认路由再子路由选中下的选中状态问题及解决代码,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-09-09
  • vue 需求 data中的数据之间的调用操作

    vue 需求 data中的数据之间的调用操作

    这篇文章主要介绍了vue 需求 data中的数据之间的调用操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • 详解Vue3的响应式原理解析

    详解Vue3的响应式原理解析

    这篇文章主要为大家介绍了Vue3的响应式原理解析,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • 使用vite项目打包资源分配目录

    使用vite项目打包资源分配目录

    这篇文章主要介绍了使用vite项目打包资源分配目录方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • Vue 监听视频播放时长的实例代码

    Vue 监听视频播放时长的实例代码

    本文介绍了如何通过源码实现对视频实时时长、播放时长和暂停时长的监听,详细阐述了相关技术的应用方法,帮助开发者更好地掌握视频监控技术,提高用户体验
    2024-10-10
  • vue中的计算属性和侦听属性

    vue中的计算属性和侦听属性

    这篇文章主要介绍了vue中的计算属性和侦听属性,帮助大家更好的理解和学习vue框架的使用,感兴趣的朋友可以了解下
    2020-11-11
  • Vue路由切换和Axios接口取消重复请求详解

    Vue路由切换和Axios接口取消重复请求详解

    在web项目开发的过程中,经常会遇到客服端重复发送请求的场景,下面这篇文章主要给大家介绍了关于Vue路由切换和Axios接口取消重复请求的相关资料,需要的朋友可以参考下
    2022-05-05
  • Vue中的前端crypto.js加解密

    Vue中的前端crypto.js加解密

    这篇文章主要介绍了Vue中的前端crypto.js加解密问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • el-select 下拉框全选、多选的几种方式组件示例详解

    el-select 下拉框全选、多选的几种方式组件示例详解

    这篇文章主要介绍了el-select 下拉框全选、多选的几种方式组件示例详解,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-12-12

最新评论