Vue2中的过滤器filter使用及注意说明

目录
  • Vue2中的过滤器是什么
    • 什么是vue的过滤器
  • 过滤器怎么写
  • 注意filter方法在vue3中已被废除

Vue2中的过滤器是什么

什么是vue的过滤器

过滤器可以通俗理解成是一个特殊的方法,用来加工数据的

比如枚举值可以使用过滤器:如 1 2 3 4 对应 成功 失败 进行中 已退回 比如价格后面跟个过滤器,将价格格式化成小数点两位 比如时间格式化等,又比如可以过滤聊天中的某些脏话

过滤器怎么写

  <div id="app">
        <h3>过滤器基本使用</h3>
      //   <!--在双花括号中使用全局过滤器 格式:{{值 | 过滤器的名称}}-->
        <p> {{content|contentFilter}} </p>
     //    <!--在v-bind中使用全局过滤器 格式:v-bind:id="值 | 过滤器的名称"-->
        <p v-bind:id="1 | addZero">11</p>
        <h3>过滤器接收参数</h3>
        <p> {{ num1| add(num2,num3)}} </p>
    </div>
Vue.filter('contentFilter', function (value) {
            //全局过滤器
            if (!value) {
                return ""
            }
            return value.toUpperCase().replace('TMD', '*不许说脏话噢*').replace('SB', '*不许说脏话噢*')
        })
         Vue.filter("addZero",function(value){
               // 如果value的值小于10则在前面添加0然后返回,否则直接返回value值
               return value<10?"0"+value:value;
           });
        new Vue({
            el: '#app',
            data: {
                content: '小伙子,TMD就是个sb',
                num1: 40,
                num2: 60,
                num3: 70,
            },
             filters: {
                //局部过滤器(本地过滤器)
                add(n1, n2, n3) {
                    return n1 + n2 + n3
                }
            }
        })

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

局部过滤器优先于全局过滤器被调用

一个表达式可以使用多个过滤器。过滤器之间需要用管道符“|”隔开。其执行顺序从左往右

注意filter方法在vue3中已被废除

vue3要精简代码,并且filter功能重复,filter能实现的功能,methods和计算属性基本上也可以实现。把filter这方面的vue源码给删掉,这样更加方便维护。

例如

使用computed实现

<template>
  <div id="app">
    <ul v-for="(item, index) in arr" :key="index">
      <li>快递公司:{{ item.deliverCompany }}</li>
      <!-- 使用计算属性 -->
      <li>运输状态:{{ computedText(item.expressState) }}</li>
    </ul>
  </div>
</template>
<script>
export default {
   data() {
    return {
      arr: [
        {
          deliverCompany: "京东快递",
          expressState: "1",
        },
        {
          deliverCompany: "顺丰快递",
          expressState: "2",
        },
        {
          deliverCompany: "中通快递",
          expressState: "3",
        },
        {
          deliverCompany: "邮政快递",
          expressState: "4",
        },
        {
          deliverCompany: "极兔快递",
          expressState: "5",
        },
        {
          deliverCompany: "某某快递",
          expressState: null,
        },
      ],
    };
  },
  computed: {
    computedText() {
      // 计算属性要return一个函数接收参数
      return function (state) {
        switch (state) {
          case "1":
            return "待发货";
            break;
          case "2":
            return "已发货";
            break;
          case "3":
            return "运输中";
            break;
          case "4":
            return "派件中";
            break;
          case "5":
            return "已收货";
            break;
          default:
            return "快递信息丢失";
            break;
        }
      };
    },
  },
};
</script>

使用methods实现

<template>
  <div id="app">
    <ul v-for="(item, index) in arr" :key="index">
      <li>快递公司:{{ item.deliverCompany }}</li>
      <!-- 使用方法 -->
      <li>运输状态:{{ methodsText(item.expressState) }}</li>
    </ul>
  </div>
</template>
<script>
export default {
  data() {
    return {
      arr: [
        {
          deliverCompany: "京东快递",
          expressState: "1",
        },
        {
          deliverCompany: "顺丰快递",
          expressState: "2",
        },
        {
          deliverCompany: "中通快递",
          expressState: "3",
        },
        {
          deliverCompany: "邮政快递",
          expressState: "4",
        },
        {
          deliverCompany: "极兔快递",
          expressState: "5",
        },
        {
          deliverCompany: "某某快递",
          expressState: null,
        },
      ],
    };
  },
  methods: {
    methodsText(state) {
      switch (state) {
        case "1":
          return "待发货";
          break;
        case "2":
          return "已发货";
          break;
        case "3":
          return "运输中";
          break;
        case "4":
          return "派件中";
          break;
        case "5":
          return "已收货";
          break;
        default:
          return "快递信息丢失";
          break;
      }
    },
  },
};
</script>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • VUE中的filters过滤器使用方法

    目录 前言 一.全局过滤器 1.全局过滤器之单一挂载 2.全局过滤器之批量挂载 二.组件过滤器 前言 Vue.js 允许我们自定义过滤器,可被用于一些常见的文本格式化.过滤器可以用在两个地方:双花括号({undefined{ }})插值和 v-bind 表达式 (后者从 2.1.0+ 开始支持).过滤器应该被添加在 JavaScript 表达式的尾部,由“管道”符号指示. <!-- 在双花括号中 --> <div>{{ message | capitalize }}</div

  • vue中使用过滤器filters的this为undefined的问题

    目录 使用过滤器filters的this为undefined vue filter过滤器的用法 使用过滤器filters的this为undefined vue中的过滤器更偏向于对文本数据的转化,而不能依赖this上下文,如果需要使用到上下文this我们应该使用computed计算属性的或者一个method方法 vue filter过滤器的用法 {undefined{ args | filterFun }} |是管道符 用法如下 {{ time | formatDate }} 过滤器中 filte

  • 详解Vue的数据及事件绑定和filter过滤器

    目录 Vue数据绑定 单向绑定 双向绑定 值绑定 事件绑定 事件处理器 事件修饰符 键值修饰符 class与style绑定 绑定class 绑定内联样式 filter过滤器 总结 Vue数据绑定 单向绑定 将Model绑定到View后,当用JavaScript代码更新Model时,View会自动更新.(模型——>视图) 单向绑定的实现过程是: 所有数据只保存一份. 一旦数据变化,就去更新页面(只有data——>DOM,没有DOM——>data) 若用户在页面上做了更新,就手动收集(双向绑

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

    目录 前言 一.全局过滤器 全局过滤器之单一挂载 全局过滤器之批量挂载 二.组件过滤器 附:过滤器中传入多个参数 总结 前言 Vue.js 允许我们自定义过滤器,可被用于一些常见的文本格式化.过滤器可以用在两个地方:双花括号({undefined{ }})插值和 v-bind 表达式 (后者从 2.1.0+ 开始支持).过滤器应该被添加在 JavaScript 表达式的尾部,由“管道”符号指示. <!-- 在双花括号中 --> <div>{{ message | capitaliz

  • 解决vue过滤器filters获取不到this对象的问题

    目录 vue过滤器filters获取不到this对象 原理 下面举个例子 Vue filters this指向问题 Vue实例中filter不依赖于当前vue实例上下文 vue过滤器filters获取不到this对象 原理 在data中定义一个属性that,把this存储到that中 在调用filters中的方法sum的时候将that传进去即可 下面举个例子 用filters计算data中 a+b 的值 注意:filters中的sum方法的第一个参数是|左边那个a,第二个参数才是括号写的that

  • Vue2中的过滤器filter使用及注意说明

    目录 Vue2中的过滤器是什么 什么是vue的过滤器 过滤器怎么写 注意filter方法在vue3中已被废除 Vue2中的过滤器是什么 什么是vue的过滤器 过滤器可以通俗理解成是一个特殊的方法,用来加工数据的 比如枚举值可以使用过滤器:如 1 2 3 4 对应 成功 失败 进行中 已退回 比如价格后面跟个过滤器,将价格格式化成小数点两位 比如时间格式化等,又比如可以过滤聊天中的某些脏话 过滤器怎么写 <div id="app"> <h3>过滤器基本使用<

  • 详解Angularjs在控制器(controller.js)中使用过滤器($filter)格式化日期/时间实例

    Angularjs内置的过滤器(filter)为我们的数据信息格式化提供了比较强大的功能,比如:格式化时间,日期.格式化数字精度.语言本地化.格式化货币等等.但这些过滤器一般都是在VIEW中使用的,比如格式化时间/日期的VIEW视图代码: <div ng-app> <p> <label>Select a date</label> <input type="date" id="date" ng-model=&quo

  • 详解JavaWeb中的过滤器Filter

    一.什么是过滤器 1.Filter过滤器的作用:拦截请求 2.拦截请求常见场景: (1)权限检查 (2)日记操作 (3)事务管理 1.1 使用步骤 Filter 过滤器的使用步骤: 1.编写一个类去实现Filter 接口 2.实现过滤方法doFilter() 3.到web.xml 中去配置Filter 的拦截路径 二.初体验 web工程下新建一个admin目录,作为需要权限才能访问的目录,其中有两个文件 2.1 mynav.html <!DOCTYPE html> <html lang=

  • 深入了解Java中的过滤器Filter和监听器Listener

    目录 Filter:过滤器 概念 快速入门 过滤器细节 Listener:监听器 Filter:过滤器 概念 生活中的过滤器:净水器,空气净化器,土匪. web中的过滤器:当访问服务器的资源时,过滤器可以将请求拦截下来,完成一些特殊的功能. 过滤器的作用: 一般用于完成通用的操作.如:登录验证.统一编码处理.敏感字符过滤... 快速入门 步骤 1.定义一个类,实现接口Filter 2.复写方法 3.配置拦截路径 web.xml 注解 代码 @WebFilter("/*")//访问所有资

  • Vue中的过滤器(filter)详解

    目录 过滤器使用位置 全局过滤器.局部过滤器 全局过滤器: 局部过滤器: 过滤器中传入多个参数: 多个过滤器串联: 官方文档:https://cn.vuejs.org/v2/guide/filters.html 在官方文档中,是这样说明的:可被用于一些常见的文本格式化,vue中过滤器的作用可被用于一些常见的文本格式化.(也就是修饰文本,但是文本内容不会改变) 个人觉得称它为加工车间会更加贴切一些,过滤器可以用来筛选出符合条件的,丢弃不符合条件的:加工车间既可以筛选,又可以对筛选出来的进行加工.

  • AngularJS中的过滤器filter用法完全解析

    在AngularJS的世界里,filter提供了一种格式化数据的方法,Angular也提供给我们了很多内建的过滤器,并且建立自定义过滤器也是相当的简单 在HTML的模板绑定{{}}中,我们使用 | 来调用过滤器,比如,我们想让字符串全部大写字符显示: {{ name | uppercase }} 当然了,我们也可以在JavaScript中使用$filter服务来调用过滤器,还拿字符串大写来举例: app.controller('DemoController', ['$scope', '$filt

  • vue2中filter()的实现代码

    vue2.0里,不再有自带的过滤器,需要自己定义过滤器.定义的方法如下: 注册一个自定义过滤器,它接收两个参数:过滤器 ID 和过滤器函数. Vue.filter('filtername',function(value,参数){ return 参数+value.split('').reverse().join(''); });1234123 完整代码如下: <!doctype html> <html> <head> <meta charset="UTF-

  • Angular.Js中过滤器filter与自定义过滤器filter实例详解

    本文主要给大家介绍了Angular.Js过滤器filter与自定义过滤器filter的相关内容,分享出来供大家参考学习,下面来看看详细的介绍: 一.AngularJS的filter过滤器: uppercase|lowercase:大小写转换过滤 json:json格式过滤 date:日期格式过滤 number:数字格式过滤 currency:货币格式过滤 filter:查找 limitTo:字符串对象截取 orderBy:对象排序 <!DOCTYPE html> <html lang=&

  • JSP 开发中过滤器filter设置编码格式的实现方法

    JSP 开发中过滤器filter设置编码格式的实现方法 我们知道为了避免提交数据的乱码问题,需要在每次使用请求之前设置编码格式.在你复制粘贴了无数次request.setCharacterEncoding("gb2312");后,有没有想要一劳永逸的方法呢?能不能一次性修改所有请求的编码呢? 用Filter吧,它的名字是过滤器, 代码如下: import java.io.IOException; import javax.servlet.Filter; import javax.ser

  • vue2 v-model/v-text 中使用过滤器的方法示例

    Vue.js 允许自定义过滤器,一般可以用在两个地方:双花括号插值和 v-bind 表达式 (后者从 2.1.0+ 开始支持).过滤器应该被添加在 JavaScript 表达式的尾部,由"管道"符号指示: <!-- 在双花括号中 --> {{ message | capitalize }} <!-- 在 v-bind 中 --> <div v-bind:id="rawId | formatId"></div> 可以在一

随机推荐