Vue.js入门与商城开发实战
上QQ阅读APP看书,第一时间看更新

3.2 Vue.js过滤器的使用

1.基础用法

Vue.js允许开发者自定义过滤器,用于常见的文本格式化,由“管道符”指示,格式如下:


<!-- 在两个大括号中 -->
{{ message | capitalize }}
<!-- 在 v-bind 指令中 -->
<div v-bind:id="rawId | formatId"></div>

过滤器函数接收表达式的值作为第一个参数。

以下实例将输入字符串的第一个字母转为大写。

具体步骤如下:

1)在Vue.js的data区域定义一个变量message,值是小写的拼音huangjuhua。

2)在过滤器filters代码块中,自定义大写方法capitalize,该方法将输入字符串的首字母转为大写。

3)普通显示{{message}}。

4)调用过滤器函数capitalize,如{{message|capitalize}}。

完整示例代码如下:


<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Vue.js中过滤器的使用</title>
    <!--加载本地vue.js的框架-->
    <script src="vue2.2.2.min.js"></script>
</head>
<body>
    <!--定义div代码块的id的值,这里定义的值为app,后面Vue会使用该值-->
    <div id="app">
        原始字符串:{{ message }}<br>
        <!--使用过滤器capitalize将首字母大写-->
        过滤后的字符串:{{ message | capitalize }}
    </div>
    
    <script>
    //下面是Vue.js的代码块-开始
    new Vue({
       el: '#app',//app为前面div代码块的id的值,通过“#”绑定
       //data区域定义属性的值
       data: {
            message: 'huangjuhua'
            //后面没有数据,则这里定义完毕后面不需要跟上逗号“,”
       },
      //下面是过滤器
      filters: {
          //自定义过滤器的处理函数
          capitalize: function (value) {
              if (!value) return ''
              value = value.toString()
              //返回处理后的字符串    
              return value.charAt(0).toUpperCase() + value.slice(1)
          }
      }
    })//Vue.js的代码块-结束
    </script>    
</body>
</html>

效果如图3-16所示。

图3-16 使用过滤器的页面效果图

2.过滤器串联

我们可以同时使用多个过滤器,多个过滤器通过“1”关联在一起。

代码格式如下:


{{ message | filterA | filterB }}

过滤器是JavaScript函数,因此可以接收参数:


{{ message | filterA('arg1', arg2) }}

其中,message是第一个参数;字符串'arg1'将传给过滤器作为第二个参数;arg2表达式将被求值,然后传给过滤器作为第三个参数。