前言

  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. URI 未注册(设置 | 语言和框架 | 架构和 DTD)

    创建xml文件导入资源出错 解决方法:点击左边的小红灯,选择获取外部资源,加载资源即可

  2. openssl查看证书命令

    openssl x509部分命令打印出证书的内容:openssl x509 -in cert.pem -noout -text打印出证书的系列号openssl x509 -in cert.pem -n ...

  3. Mol Cell | 张令强/贺福初/魏文毅/刘翠华揭示线性泛素化调控血管生成新机制

    景杰学术 | 报道 泛素化修饰作为主要的蛋白质翻译后修饰之一,与细胞周期.应激反应.信号传导和DNA损伤修复等几乎所有的生命活动密切相关[1].泛素分子通常含有7个赖氨酸残基,通过这些残基可以和其他泛 ...

  4. MySQL 索引使用案例

    索引使用案例 支持多种过滤条件 假设要设计一个在线约会网站,用户信息表有很多列,包括国家.地区.城市.性别.眼睛颜色,等等.网站必须支持上面这些特征的各种组合来搜索用户,还必须允许根据用户的最后在线时 ...

  5. RHCE_DAY02

    常用数值运算方式 $[] #四则运算(+ - * / % 取余数) $(()) #数值运算工具 expr #数值运算工具 let #数值运算工具 [root@localhost ~]# echo $[ ...

  6. SpringMVC学习02(我的第一个SpringMVC程序)

    2.Hello,SpringMVC 2.1 配置版 1.新建一个Moudle , springmvc-02-hello , 添加web的支持! 2.确定导入了SpringMVC 的依赖! 3.配置we ...

  7. 【Vulnhub】DC-1靶机

    一.信息收集 1.1 环境 kali : 192.168.124.141 DC-1 : 192.168.124.150 1.2 nmap进行扫描 :nmap -sV 192.168.124.150 I ...

  8. Pikachu-Unsafe Fileupload模块

    一.概述 文件上传功能在web应用系统很常见,比如很多网站注册的时候需要上传头像.上传附件等等.当用户点击上传按钮后,后台会对上传的文件进行判断 比如是否是指定的类型.后缀名.大小等等,然后将其按照设 ...

  9. Linux搭建SQL server服务器

    我们知道在Linux下安装服务有很多方式,最为简单的也就是yum安装,但是很多服务通过yum是无法安装的,如果想使用yum安装,需要指定yum安装仓库,我们今天需要安装MSQL Server,所以需要 ...

  10. swiper在一个页面多个轮播图

    <script> var swiper = new Swiper('.swiper-container1', { spaceBetween: 30, centeredSlides: tru ...