vue过滤器用法实例分析

vue

过滤器:

vue提供过滤器:

capitalize uppercase currency....

?

1

2

3

<divid="box">

    {{msg|currency ¥}}

  </div>

debounce 配合事件,延迟执行

?

1

2

3

<divid="box">

    <inputtype="text"@keyup="show | debounce 2000">

  </div>

数据配合使用过滤器:

limitBy 限制几个
limitBy 参数(取几个)
limitBy 取几个 从哪开始

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

<div id="box">

    <ul>

      <!--取2个-->

      <li v-for="val in arr | limitBy 2">

        {{val}}

      </li>

      <br/>

      <br/>

      <!--取2个,从第arr.length-2个开始取-->

      <li v-for="val in arr | limitBy 2 arr.length-2">

        {{val}}

      </li>

    </ul>

  </div>

  <script>

    varvm=newVue({

      data:{

        arr:[1,2,3,4,5]

      },

      methods:{

      }

    }).$mount(\'#box\');

  </script>

vue插件filterBy 过滤数据
filterBy \'谁\'

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

<div id="box">

    <input type="text"v-model="a">

    <ul>

      <li v-for="val in arr | filterBy a">

        {{val}}

      </li>

    </ul>

  </div>

  <script>

    varvm=newVue({

      data:{

        arr:[\'width\',\'height\',\'background\',\'orange\'],

        a:\'\'

      },

      methods:{

      }

    }).$mount(\'#box\');

  </script>

angular orderBy 排序

orderBy 谁 1/-1
1 -> 正序
2 -> 倒序

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

<div id="box">

    <input type="text"v-model="a">

    <ul>

      <li v-for="val in arr | orderBy -1">

        {{val}}

      </li>

    </ul>

  </div>

  <script>

    varvm=newVue({

      data:{

        arr:[\'width\',\'height\',\'background\',\'orange\'],

        a:\'\'

      },

      methods:{

      }

    }).$mount(\'#box\');

  </script>

自定义过滤器: model ->过滤 -> view

?

1

2

Vue.filter(name,function(input){

});

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

<div id="box">

    {{a | toDou 1 2}}

  </div>

  <script>

    Vue.filter(\'toDou\',function(input,a,b){

      alert(a+\',\'+b);

      returninput<10?\'0\'+input:\'\'+input;

    });

    varvm=newVue({

      data:{

        a:9

      },

      methods:{

      }

    }).$mount(\'#box\');

  </script>

时间转化器

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

<div id="box">

    {{a | date}}

  </div>

  <script>

    Vue.filter(\'date\',function(input){

      varoDate=newDate(input);

      returnoDate.getFullYear()+\'-\'+(oDate.getMonth()+1)+\'-\'+oDate.getDate()+\' \'+oDate.getHours()+\':\'+oDate.getMinutes()+\':\'+oDate.getSeconds();

    });

    varvm=newVue({

      data:{

        a:Date.now()//返回1970 年 1 月 1日午夜与当前日期和时间之间的毫秒数。

      },

      methods:{

      }

    }).$mount(\'#box\');

  </script>

50、选择器过滤html标记

双向过滤器:*

?

1

2

3

4

5

6

7

8

Vue.filter(\'filterHtml\',{

  read:function(input){ //model-view

    returninput.replace(/<[^<+]>/g,\'\');

  },

  write:function(val){ //view -> model

    returnval;

  }

});

数据 -> 视图

model -> view

view -> model

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

<!DOCTYPE html>

<html lang="en">

<head>

  <meta charset="UTF-8">

  <title></title>

  <style>

  </style>

  <script src="vue.js"></script>

  <script>

    //<h2>welcome</h2>

    Vue.filter(\'filterHtml\',{

      read:function(input){ //model-view

        alert(1);

        returninput.replace(/<[^<]+>/g,\'\');

      },

      write:function(val){ //view -> model

        console.log(val);

        returnval;

      }

    });

    window.onload=function(){

      varvm=newVue({

        data:{

          msg:\'<span>welcome</span>\'

        }

      }).$mount(\'#box\');

    };

  </script>

</head>

<body>

  <div id="box">

    <input type="text"v-model="msg | filterHtml">

    <br>

    {{msg | filterHtml}}

  </div>

</body>

</html>

以上是 vue过滤器用法实例分析 的全部内容, 来源链接: utcz.com/z/379244.html

回到顶部