vue-过滤器(filter)的使用详解
前言
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)的使用详解的更多相关文章
- Java过滤器Filter的使用详解
过滤器 过滤器是处于客户端与服务器资源文件之间的一道过滤网,在访问资源文件之前,通过一系列的过滤器对请求进行修改.判断等,把不符合规则的请求在中途拦截或修改.也可以对响应进行过滤,拦截或修改响应. 如 ...
- Vue插件编写、用法详解(附demo)
Vue插件编写.用法详解(附demo) 1.概述 简单来说,插件就是指对Vue的功能的增强或补充. 比如说,让你在每个单页面的组件里,都可以调用某个方法,或者共享使用某个变量,或者在某个方法之前执行一 ...
- npm安装vue详细教程(图片详解)
npm安装vue详细教程(图片详解) 一.总结 一句话总结:整个安装流程照着教程来,注意系统环境变量的配置,注意一下npm的本地仓库和缓存位置 教程 系统环境变量 仓库 缓存 1.什么情况下最适合用n ...
- vue视图不更新情况详解
vue视图不更新情况详解:https://www.jb51.net/article/161371.htm
- vue和react全面对比(详解)
vue和react对比(详解) 放两张图镇压小妖怪 本文先讲共同之处, 再分析区别 大纲在此: 共同点: a.都使用虚拟dom b.提供了响应式和组件化的视图组件 c.注意力集中保持在核心库,而将其他 ...
- vue 过滤器filter的详解
1.代码运用的地方 <!-- 在双花括号中 --> {{ date | formatDate}} <!-- 在 `v-bind` 中 --> <div v-bind:id ...
- Filter(过滤器)与Listener(监听器)详解
11.Filter(重点) Filter:过滤器,用来过滤网站的数据: 处理中文乱码 登陆验证... Filter开发步骤: 导包 编写过滤器 导包不要错 实现Filter接口,重写对应的方法即可 p ...
- Vue插件写、用详解(附demo)
出处http://blog.csdn.net/qq20004604 Vue插件 1.概述 简单来说,插件就是指对Vue的功能的增强或补充. 比如说,让你在每个单页面的组件里,都可以调用某个方法,或者共 ...
- Vue教程:组件Component详解(六)
一.什么是组件? 组件 (Component) 是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功 ...
- vue - 过滤器filter的基本使用
1.全局过滤器 输出: 过滤器可以多次来调用 输出: 2.私有过滤器 <!DOCTYPE html> <html lang="en"> <head&g ...
随机推荐
- SpringBoot 默认json解析器详解和字段序列化自定义
前言 在我们开发项目API接口的时候,一些没有数据的字段会默认返回NULL,数字类型也会是NULL,这个时候前端希望字符串能够统一返回空字符,数字默认返回0,那我们就需要自定义json序列化处理 Sp ...
- 配置多个git用的ssh key
参考 http://www.sail.name/2018/12/16/ssh-config-of-mac/ 有一点注意 Host 的名字和 HostName改为一致. 因为从git仓库复制的地址是全程 ...
- SpringMVC 源码解析笔记
作者笔记仓库:https://github.com/seazean/javanotes 欢迎各位关注我的笔记仓库,clone 仓库到本地后使用 Typora 阅读效果更好. 一.调度函数 请求进入原生 ...
- OpenFaaS实战之九:终篇,自制模板(springboot+maven+jdk8)
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- linux基础操作命令合集(一)
linux基础操作命令合集(一) 目录 linux基础操作命令合集(一) 一.命令行提示符 二.切换用户 三.主机名称命令 3.1.临时设置主机名 3.2.永久设置主机名 四.查看系统版本 五.网卡相 ...
- MOOC大学计算机课程推荐
转自:https://zhuanlan.zhihu.com/p/30659834 这个是大佬总结的, 大学计算机课程 以下课程是我在MOOC上找到的所有我认为讲的好的. 主要是中国大学MOOC,学堂 ...
- 在 CSS 中表示颜色的hex code方法和rgb方法
hexadecimal code(十六进制编码),简写为 hex code. 我们通常使用 decimals,也就是十进制数字,它对每一位数字使用符号0到9来表示.Hexadecimals (或 he ...
- contos7 安装weblogic10.3 _wls1036_generic.jar
环境:CentOS7+jdk1.8 weblogic下载地址1: http://www.oracle.com/technetwork/cn/middleware/weblogic/downloads/ ...
- kivy之TextInput属性实操练习
TextInput属性比较多,常用在页面设计上的属性做了实操练习,便于很直观的了解学习本部件.并将其中一个输入提示的属性在实操源码里单独建立了一个功能进行演示. 主程序文件main.py我就不贴出来了 ...
- python中的logging日志
logging使用 import logging import os from logging import handlers from constants.constants import Cons ...