zoukankan      html  css  js  c++  java
  • Vue中过滤器的基本使用

    1.概念

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

    2.语法

    2.1调用过滤器的格式

      其中 | 表示管道符,管道符前面的为数据,管道符后面的为过滤器,使用过程中数据会传递给过滤器的处理函数,最终将处理的结果返回。

    • 插值表达式
    <h3>{{ 数据 | 过滤器名称('arg1', 'arg2')) }}</h3>
    • v-bind 表达式
    <h3 v-text="数据|过滤器名称"></h3>

    2.2.定义一个过滤器

      定义过滤器需要2个关键参数 过滤器名称 和 处理函数。处理函数 用于过滤器的数据处理,函数的第一个参数固定为过滤器调用时传递的数据,后面参数依次为调用过滤器时传递的参数

    • 全局过滤器

      关键字:filter

      挂载到全局的 Vue 上,Vue 的实例对象都可以使用,如:vm1、vm2......等都可以使用

    Vue.filter("过滤器名称", function(data, arg1, arg2){
      return data+arg1+arg2
    })
    var vm1 = new Vue({
        el: "#app"
    })
    var vm2 = new Vue({
        el: "#app"
    })
    • 私有过滤器

      关键字:filters

      挂载到一个 Vue 实例上,只有该 Vue 实例可以使用,如:只有vm实例可以使用

    var vm = new Vue({
        el: "#app",
        filters: {
            过滤器名称: function(data, arg1, arg2){
                return data+arg1+arg2
            }
        }
    })

      注意:过滤器的调用采用就近原则,如果 私有过滤器 和全局过滤器 名称一致,优先采用私有过滤器

    3.过滤器使用

      以下将使用全局过滤器展示多个过滤器使用场景。

    3.1.全局过滤器

    • 无参数过滤器
    <div id="app">
      <h3>{{ msg | msgFormat1 }}</h3>
    </div>
    
    <script>
      // 1.无参数过滤器
      Vue.filter('msgFormat1', function(data) {
        return data.replace(/今天/g, '明天')
      })
      var vm = new Vue({
        el: '#app',
        data: {
          msg: '今天天气很好,我们今天去购物吧。'
        }
      })
    </script>
    • 带参数过滤器
    <div id="app">
      <h3>{{ msg | msgFormat2('周末') }}</h3>
    </div>
    
    <script>
      // 2.带参数过滤器    
      Vue.filter('msgFormat2', function(data, arg) {
        return data.replace(/今天/g, arg)
      })
      var vm = new Vue({
        el: '#app',
        data: {
          msg: '今天天气很好,我们今天去购物吧。'
        }
      })
    </script>
    • 多个过滤器
    <div id="app">
      <h3>{{ msg | msgFormat2('国庆节') | msgFormat3 }}</h3>
    </div>
    
    <script>
      // 3.多个过滤器
      Vue.filter('msgFormat3', function(data) {
        return data + '那一定很愉快。'
      })
      var vm = new Vue({
        el: '#app',
        data: {
          msg: '今天天气很好,我们今天去购物吧。'
        }
      })
    </script>

    3.2.私有过滤器

    <div id="app">
      <p>今天的日期是:{{ date | dateFormat }}</p>
    </div>
    
    <script>
      var vm = new Vue({
        el: '#app',
        data: {
          date: new Date()
        },
        filters: {
          dateFormat: function (date) {
            var time = new Date(date)
            var year = time.getFullYear()
            var month = (time.getMonth() + 1).toString().padStart(2, 0)
            var day = time.getDay().toString().padStart(2, 0)
    
            var hours = time.getHours().toString().padStart(2, 0)
            var minutes = time.getMinutes().toString().padStart(2, 0)
            var seconds = time.getSeconds().toString().padStart(2, 0)
            return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`
          }
        }
      })
    </script>

    示例代码

    转载请注明出处:https://www.cnblogs.com/unlockth/p/13472253.html

  • 相关阅读:
    SAP CRM WebClient UI的Delta处理机制介绍
    三种动态控制SAP CRM WebClient UI assignment block显示与否的方法
    SAPGUI软件里做的设置,本地操作系统保存的具体位置
    SAP CRM附件在应用服务器上的存储原理解析
    FLINK实例(2):CONNECTORS(1)如何正确使用 Flink Connector?
    shell脚本执行报错:/bin/bash^M: bad interpreter: No such file or directory
    FLINK实例(6): CONNECOTRS(5)Flink Kafka Connector 与 Exactly Once 剖析
    java.lang.IllegalStateException(Connection to remote Spark driver was lost)
    java.security.cert.CertificateNotYetValidException: NotBefore
    Hadoop问题:org.apache.hadoop.ipc.RpcException: RPC response exceeds maximum data length 错误
  • 原文地址:https://www.cnblogs.com/unlockth/p/13472253.html
Copyright © 2011-2022 走看看