视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
vue自定义过滤器创建和使用方法详解
2020-11-27 22:26:15 责编:小OO
文档


本文实例为大家分享了vue自定义过滤器创建和使用方法,供大家参考,具体内容如下

过滤器:生活中有很多例子,净水器 空气净化器 。

过滤器的作用:实现数据的筛选、过滤、格式化。

vue1.*版本是有内置的过滤器,但是在vue2.*所有的版本都已经没有自带的过滤器了。

1、过滤器创建

过滤器的本质 是一个有参数 有返回值的方法

  new Vue({
    filters:{
      myCurrency:function(myInput){
        return 处理后的数据
      }
    }
  })

2、过滤器使用

语法:
  <any>{{表达式 | 过滤器}}</any>

举个例子:
  <h1>{{price | myCurrency}}</h1>

3、过滤器高级用法

在使用过滤器的时候,还可以指定参数,来告诉过滤器按照参数进行数据的过滤。

①如何给过滤器传参?

<h1>{{price | myCurrency('¥',true)}}</h1>

②如何在过滤器中接收到?

new Vue({
  filters:{
    //myInput是通过管道传来的数据
    //arg1在调用过滤器时在圆括号中第一个参数
    //arg2在调用过滤器时在圆括号中第二个参数
    myCurrency:function(myInput,arg1,arg2){
      return 处理后的数据
    }

  }

})

代码:

<!DOCTYPE html>
<html>
<head lang="en">
 <meta charset="UTF-8">
 <script src="js/vue.js"></script>
 <title></title>
</head>
<body>

<div id="container">
 <p>{{msg}}</p>
 <h1>{{price}}</h1>
 <h1>{{price | myCurrency('¥')}}</h1>
</div>

<script>
 // filter
 new Vue({
 el: '#container',
 data: {
 msg: 'Hello Vue',
 price:356
 },
 //过滤器的本质 就是一个有参数有返回值的方法
 filters:{
 myCurrency:function(myInput,arg1){
 console.log(arg1);
 //根据业务需要,对传来的数据进行处理
 // 并返回处理后的结果
 var result = arg1+myInput;
 return result;
 }
 }
 })
</script>

</body>
</html>

<!DOCTYPE html>
<html>
<head lang="en">
 <meta charset="UTF-8">
 <script src="js/vue.js"></script>
 <title></title>
</head>
<body>

<div id="container">
 <p>{{msg}}</p>
 <h1>{{name | myTextTransform(false)}}</h1>
</div>

<script>
 new Vue({
 el: '#container',
 data: {
 msg: 'Hello Vue',
 name:'Michael'
 },
 filters:{
 myTextTransform: function (myInput,isUpper) {
 if(isUpper)
 {
 return myInput.toUpperCase();
 }
 else{
 return myInput.toLowerCase();
 }
 }
 }
 })
</script>

</body>
</html>

<!doctype html>
<html>
 <head>
 <meta charset="UTF-8">
 <title>过滤器</title>
 <script src="js/vue.js"></script>
 </head>
 <body>
 <div id="container">
 <p>{{msg}}</p>
 <h1>{{price}}</h1>
 <h1>{{price|myCurrency}}</h1>
 </div>
 <script>
 new Vue({
 el:"#container",
 data:{
 msg:"Hello VueJs",
 price:356
 },
//过滤器的本质 就是一个有参数有返回值的方法
 filters:{
 myCurrency:function(myInput){
 var result = "$"+myInput;
 return result;
 }
 }
 })
 </script>
 </body>
</html>

最后一个例子是写死的。

下载本文
显示全文
专题