前言

  Vue 允许我们在项目中定义过滤器对我们页面的文本展示进行格式的控制,本文就来总结一下过滤器在项目中的常见使用方法。

正文

  1.局部过滤器的注册

  (1)无参局部过滤器

    <div id="app">
<!-- 组件内部的过滤器 -->
<filter-item :msg="toMsg"></filter-item>
</div>
<script>
// 组件内部注册过滤器
Vue.component("filter-item", {
data() {
return {
}
},
props: ['msg'],
filters: {
toFixed(value) {
if (!value) {
return
}
return value.toFixed(2)
},
},
template: "<div>{{msg|toFixed}}</div>"
})
new Vue({
el: "#app",
data() {
return {
toMsg: 123,
}
},
})
</script>

  运行结果如下:

  上面的代码中在子组件内部定义一个过滤器,在其模板中的插值表达式中使用,完成了对字符串的格式化。

  (2)带参局部过滤器

    <div id="app">
<!-- 组件内部的过滤器 -->
<filter-item :msg="toMsg"></filter-item>
</div>
<script>
// 组件内部注册过滤器
Vue.component("filter-item", {
data() {
return {
}
},
props: ['msg'],
filters: {
toString(value,arg){
if (!value) {
return
}
console.log("value",value);
return value.toString(arg)
}
},
template: "<div>{{msg|toString(2)}}</div>"
})
// 全局注册过滤器
new Vue({
el: "#app",
data() {
return {
toMsg: 123,
}
},
})
</script>

  运行结果如下:

  上面的代码中在组件内部定义一个过滤器,接受两个参数,第一个参数是需要格式化的文本,第二个是需要进行的进制转化。

  2.全局过滤器的注册

  (1)无参全局过滤器

    <div id="app">
<!-- 全局的过滤器 -->
{{myMsg|toUpper}}
</div>
<script>
// 全局注册过滤器
new Vue({
el: "#app",
data() {
return {
myMsg: "abcdef"
}
},
filters: {
toUpper(value) {
if (!value) {
return
}
return value.toUpperCase()
},
},
methods: {
}
})
</script>

  运行结果如下:

  上面的代码中在vue根组件中定义一个过滤器,该过滤器为全局过滤器,同样通过插值表达式完成格式转化。

  (2)带参全局过滤器

   <div id="app">
<!-- 传递参数的过滤器 -->
{{myMsg|toSlice(3)}}
</div>
<script>
// 全局注册过滤器
new Vue({
el: "#app",
data() {
return {
toMsg: 123,
myMsg: "abcdef"
}
},
filters: {
// 传参的过滤器
toSlice(value,arg){
if (!value) {
return
}
return value.slice(arg)
}
},
})
</script>

  运行结果如下:

  上面的代码中在vue根组件中定义一个全局过滤器,该过滤器接收两个参数,第一个参数为需要格式化的文本,第二个为真正的参数。

  注意:当局不和全局有两个名称相同的过滤器的时候,会首先使用局部过滤器,这里采用就近原则,局部过滤器会优先于全局过滤器的调用。

  3.过滤器的使用

  在插值表达式中使用带个过滤器如上文,如果需要组合使用多个过滤器的时候,需要用 "|"分隔符隔开。使用如下:

  <div id="app">
<!-- 串联的过滤器 -->
{{myMsg|toUpper|toReverse}}
</div>
<script>
// 全局注册过滤器
new Vue({
el: "#app",
data() {
return {
toMsg: 123,
myMsg: "abcdef"
}
},
filters: {
toUpper(value) {
if (!value) {
return
}
return value.toUpperCase()
},
toReverse(value) {
if (!value) {
return
}
return value.split("").reverse().join("")
},
}
})
</script>

  运行结果如下:

  上面的代码使用了串联的过滤器,首先通过toUpper过滤器对文本进行大写转化,然后toReverse过滤器对文本进行反转转化,最终得到结果。

写在最后

  以上就是本文的全部内容,希望给读者带来些许的帮助和进步,方便的话点个关注,小白的成长踩坑之路会持续更新一些工作中常见的问题和技术点。

vue-过滤器(filter)的使用详解的更多相关文章

  1. Java过滤器Filter的使用详解

    过滤器 过滤器是处于客户端与服务器资源文件之间的一道过滤网,在访问资源文件之前,通过一系列的过滤器对请求进行修改.判断等,把不符合规则的请求在中途拦截或修改.也可以对响应进行过滤,拦截或修改响应. 如 ...

  2. Vue插件编写、用法详解(附demo)

    Vue插件编写.用法详解(附demo) 1.概述 简单来说,插件就是指对Vue的功能的增强或补充. 比如说,让你在每个单页面的组件里,都可以调用某个方法,或者共享使用某个变量,或者在某个方法之前执行一 ...

  3. npm安装vue详细教程(图片详解)

    npm安装vue详细教程(图片详解) 一.总结 一句话总结:整个安装流程照着教程来,注意系统环境变量的配置,注意一下npm的本地仓库和缓存位置 教程 系统环境变量 仓库 缓存 1.什么情况下最适合用n ...

  4. vue视图不更新情况详解

    vue视图不更新情况详解:https://www.jb51.net/article/161371.htm

  5. vue和react全面对比(详解)

    vue和react对比(详解) 放两张图镇压小妖怪 本文先讲共同之处, 再分析区别 大纲在此: 共同点: a.都使用虚拟dom b.提供了响应式和组件化的视图组件 c.注意力集中保持在核心库,而将其他 ...

  6. vue 过滤器filter的详解

    1.代码运用的地方 <!-- 在双花括号中 --> {{ date | formatDate}} <!-- 在 `v-bind` 中 --> <div v-bind:id ...

  7. Filter(过滤器)与Listener(监听器)详解

    11.Filter(重点) Filter:过滤器,用来过滤网站的数据: 处理中文乱码 登陆验证... Filter开发步骤: 导包 编写过滤器 导包不要错 实现Filter接口,重写对应的方法即可 p ...

  8. Vue插件写、用详解(附demo)

    出处http://blog.csdn.net/qq20004604 Vue插件 1.概述 简单来说,插件就是指对Vue的功能的增强或补充. 比如说,让你在每个单页面的组件里,都可以调用某个方法,或者共 ...

  9. Vue教程:组件Component详解(六)

    一.什么是组件? 组件 (Component) 是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功 ...

  10. vue - 过滤器filter的基本使用

    1.全局过滤器 输出: 过滤器可以多次来调用 输出: 2.私有过滤器 <!DOCTYPE html> <html lang="en"> <head&g ...

随机推荐

  1. SoundPool概率性无声问题

    public class SoundManager { private static SoundManager instance; private SoundPool mSoundPool; priv ...

  2. 异地远程访问群晖NAS中的文件

    异地远程访问群晖NAS中的文件   我以群晖DS720+网络存储服务器为例,介绍我是如何异地远程访问群晖NAS中的文件的.   此文章只介绍部署操作的大概步骤,具体的操作方法和技巧可以在西瓜视频.抖音 ...

  3. 靶机BlackMarket

    工具:nmap.dirbuster.dirb.sqlmap.cewl.crunch.hydra 涉及的漏洞:弱口令 垂直越权 SQL注入 CVE-2016-5195脏牛提权(内核竞争提权漏洞) fla ...

  4. 5年Android开发诉苦:47天21家面试,半年空档期觉得整个人生都被毁了

    近日,我在逛某社交论坛时,发现一位做了五年的Android开发将自己这段时间的所有面试经历发表了出来,根据网友自己提供的信息显示,主要面试的地点都在北京,上海等地. 微软和亚马逊刚面试完一面,都是以算 ...

  5. FreeRTOS-05-队列

    说明 本文仅作为学习FreeRTOS的记录文档,作为初学者肯定很多理解不对甚至错误的地方,望网友指正. FreeRTOS是一个RTOS(实时操作系统)系统,支持抢占式.合作式和时间片调度.适用于微处理 ...

  6. 一张图说明 iaas paas saas的区别

    图片来源:https://www.bilibili.com/video/BV1QJ411S7c4  P2 云服务的三种模式 1laaS(基础设施即服务) laas(Infrastructure as ...

  7. Git-01-安装

    安装 在centos6.8上安装Git: yum install git -y windows上安装git: 安装的时候,默认选项即可 centos和windows安装git完成以后的设置: git ...

  8. Beescms V4.0_R_20160525代码审计笔记

    写在前面 什么是报错注入?正常用户访问服务器发送id信息返回正确的id数据.报错注入是想办法构造语句,让错误信息中可以显示数据库的内容:如果能让错误信息中返回数据库中的内容,即实现SQL注入. 复现过 ...

  9. NOIP 模拟 $12\; \text{简单的区间}$

    题解 签到题 求区间和为 \(k\) 的倍数的区间,我们可以转化为求左右两个端点,其前缀和相等 对于区间最大值,我们可以把其转化为一个值,它能向左,向右扩展的最远边界,一个单调栈即可 我们设一个值 \ ...

  10. wpf 中的矩形的歪斜

    <Grid> <Rectangle x:Name="rect12" Width="100" Opacity="1" Hei ...