Vue实现自带的过滤器实例


Posted in Javascript onMarch 09, 2017

一 过滤器写法

{{ message | Filter}}

二 Vue自带的过滤器:capitalize

功能:首字母大写

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Vue自带的过滤器</title>
    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
    <script src="../js/vue.js" type="text/javascript" charset="utf-8"></script>
  </head>
  <body>
    <div class="test">
      {{message | capitalize}}
    </div>
    <script type="text/javascript">
      var myVue = new Vue({
        el: ".test",
        data: {
          message: "abc"
        }
      })
    </script>
  </body>
</html>

上面代码输出:Abc

三 Vue自带的过滤器:uppercase

功能:全部大写

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Vue自带的过滤器</title>
    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
    <script src="../js/vue.js" type="text/javascript" charset="utf-8"></script>
  </head>
  <body>
    <div class="test">
      {{message | uppercase}}
    </div>
    <script type="text/javascript">
      var myVue = new Vue({
        el: ".test",
        data: {
          message: "abc"
        }
      })
    </script>
  </body>
</html>

上面代码输出:ABC

 四 Vue自带的过滤器:uppercase

功能:全部小写

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Vue自带的过滤器</title>
    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
    <script src="../js/vue.js" type="text/javascript" charset="utf-8"></script>
  </head>
  <body>
    <div class="test">
      {{message | lowercase}}
    </div>
    <script type="text/javascript">
      var myVue = new Vue({
        el: ".test",
        data: {
          message: "ABC"
        }
      })
    </script>
  </body>
</html>

上面代码输出:abc

 五 Vue自带的过滤器:currency

功能:输出金钱以及小数点

参数:

第一个参数     {String} [货币符号] - 默认值: '$'

第二个参数     {Number} [小数位] - 默认值: 2

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Vue自带的过滤器</title>
    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
    <script src="../js/vue.js" type="text/javascript" charset="utf-8"></script>
  </head>
  <body>
    <div class="test">
      {{message | currency}} <!--输出$123.47-->
      {{message | currency '¥' "1"}} <!--输出$123.5-->
    </div>
    <script type="text/javascript">
      var myVue = new Vue({
        el: ".test",
        data: {
          message: "123.4673"
        }
      })
    </script>
  </body>
</html>

六 Vue自带的过滤器:pluralize

功能: 如果只有一个参数,复数形式只是简单地在末尾添加一个 “s”。如果有多个参数,参数被当作一个字符串数组,对应一个、两个、三个…复数词。如果值的个数多于参数的个数,多出的使用最后一个参数。

参数:{String} single, [double, triple, ...

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Vue自带的过滤器</title>
    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
    <script src="../js/vue.js" type="text/javascript" charset="utf-8"></script>
  </head>
  <body>
    <div class="test">
    {{message}}  {{message | pluralize 'item'}} <!--输出: 1 item-->
    
      <ul v-for="item in lili">
        <li>
          {{item}}  {{item | pluralize 'item'}} <!--输出: 1  item 2  items 3  items-->
        </li>
      </ul>
      
      <ul v-for="item in lili">
        <li>
          {{item}}  {{item | pluralize 'st' 'rd'}} <!--输出: 1  st 2  rd 3  rd-->
        </li>
      </ul>
      
      <ul v-for="item in man">
        <li>
          {{item}}  {{item | pluralize 'item'}} <!--输出: 1  item 2  items 3  items-->
        </li>
      </ul>
      
      <ul v-for="item in man">
        <li>
          {{item}}  {{item | pluralize 'st' 'rd'}} <!--输出: 1  st 2  rd 3  rd-->
        </li>
      </ul>
    </div>
    <script type="text/javascript">
      var myVue = new Vue({
        el: ".test",
        data: {
          message: 1,
          lili: [1,2,3],
          man: {
            name1: 1,
            name2: 2,
            name3: 3
          }
        }
      })
    </script>
  </body>
</html>

七 Vue自带的过滤器:debounce

(1)限制: 需在@里面使用

(2)参数:{Number} [wait] - 默认值: 300

(3)功能:包装处理器,让它延迟执行 x ms, 默认延迟 300ms。包装后的处理器在调用之后至少将延迟 x ms, 如果在延迟结束前再次调用,延迟时长重置为 x ms。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Vue自带的过滤器</title>
    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
    <script src="../js/vue.js" type="text/javascript" charset="utf-8"></script>
  </head>
  <body>
    <div class="test">
      <button id="btn" @click="disappear | debounce 10000">点击我,我将10秒后消失</button>
    </div>
    <script type="text/javascript">
      var myVue = new Vue({
        el: ".test",
        methods: {
          disappear: function () {
            document.getElementById("btn").style.display= "none";
          }
        }
      })
    </script>
  </body>
</html>

八 Vue自带的过滤器:limitBy

(1)限制:需在v-for(即数组)里面使用

(2)两个参数:

第一个参数:{Number} 取得数量

第二个参数:{Number} 偏移量

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Vue自带的过滤器</title>
    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
    <script src="../js/vue.js" type="text/javascript" charset="utf-8"></script>
  </head>
  <body>
    <div class="test">
      <ul v-for="item in lili | limitBy 10"> <!--输出1 2 3 4 5 6 7 8 9 10-->
        <li>{{item}}</li>
      </ul>
      <ul v-for="item in lili | limitBy 10 3"> <!--输出 4 5 6 7 8 9 10 11 12 13-->
        <li>{{item}}</li>
      </ul>
    </div>
    <script type="text/javascript">
      var myVue = new Vue({
        el: ".test",
        data: {
          lili: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
        }
      })
    </script>
  </body>
</html>

 九 Vue自带的过滤器:filterBy

(1)限制:需在v-for(即数组)里面使用

(2)三个参数:

第一个参数: {String | Function} 需要搜索的字符串

第二个参数: in (可选,指定搜寻位置)

第三个参数: {String} (可选,数组格式)

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Vue自带的过滤器</title>
    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
    <script src="../js/vue.js" type="text/javascript" charset="utf-8"></script>
  </head>
  <body>
    <div class="test">
      <ul v-for="item in lili | filterBy 'o' "> <!--输出oi oa lo ouo oala-->
        <li>{{item}}</li>
      </ul>
      
      <ul v-for="item in man | filterBy 'l' in 'name' "> <!--输出lily lucy-->
        <li>{{item.name}}</li>
      </ul>
      
      <ul v-for="item in man | filterBy 'l' in 'name' 'dada' "> <!--输出lily+undefined lucy+undefined undefined+lsh-->
        <li>{{item.name+"+"+item.dada}}</li>
      </ul>
    </div>
    <script type="text/javascript">
      var myVue = new Vue({
        el: ".test",
        data: {
          lili: ["oi", "oa", "ll", "lo" ,"ouo" ,"kk" ,"oala"],
          man: [  //此处注意man是数组,不是对象
          {name: "lily"},
          {name: "lucy"},
          {name: "oo"},
          {dada: "lsh"},
          {dada: "ofg"}
          ]
        }
      })
    </script>
  </body>
</html>

十 Vue自带的过滤器:orderBy

(1)限制:需在v-for(即数组)里面使用

(2)三个参数:

第一个参数: {String | Array<String> | Function} 需要搜索的字符串

第二个参数: {String} 可选参数 order 决定结果升序(order >= 0)或降序(order < 0),默认是升序

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Vue自带的过滤器</title>
    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
    <script src="../js/vue.js" type="text/javascript" charset="utf-8"></script>
  </head>
  <body>  
    <div class="test">
      <!--遍历数组-->
      <ul v-for="item in lili | orderBy 'o' 1"> <!--输出kk ll oi-->
        <li>{{item}}</li>
      </ul>
      
      <ul v-for="item in lili | orderBy 'o' -1"> <!--输出oi ll kk-->
        <li>{{item}}</li>
      </ul>
      
      <!--遍历含对象的数组-->
      <ul v-for="item in man | orderBy 'name' 1"> <!--输出Bruce Chuck Jackie-->
        <li>{{item.name}}</li>
      </ul>
      
      <ul v-for="item in man | orderBy 'name' -1"> <!--输出Jackie Chuck Bruce-->
        <li>{{item.name}}</li>
      </ul>
      
      <!--使用函数排序-->
      <ul v-for="item in man | orderBy ageByTen"> <!--输出Bruce Chuck Jackie-->
        <li>{{item.name}}</li>
      </ul>
    </div>
    <script type="text/javascript">
      var myVue = new Vue({
        el: ".test",
        data: {
          lili: ["oi", "kk", "ll"],
          man: [  //此处注意man是数组,不是对象
         {
          name: 'Jackie',
          age: 62
         },
         {
          name: 'Chuck',
          age: 76
         },
         {
          name: 'Bruce',
          age: 61
         }
        ]
        },
        methods: {
          ageByTen: function () {
            return 1;
          }
        }
      })
    </script>
  </body>
</html>

本文源码地址:vue-filter_3water.rar

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript中String和StringBuffer的速度之争
Apr 01 Javascript
Javascript 判断是否存在函数的方法
Jan 03 Javascript
图标线性回归斜着移动到指定的位置
Aug 16 Javascript
JavaScript使用yield模拟多线程的方法
Mar 19 Javascript
详解js中class的多种函数封装方法
Jan 03 Javascript
Node.js使用Express创建Web项目详细教程
Mar 31 Javascript
angularjs2 ng2 密码隐藏显示的实例代码
Aug 01 Javascript
关于angularJs清除浏览器缓存的方法
Nov 28 Javascript
在 Vue 项目中引入 tinymce 富文本编辑器的完整代码
May 04 Javascript
Vue Promise的axios请求封装详解
Aug 13 Javascript
如何安装控制器JavaScript生成插件详解
Oct 21 Javascript
Vue3实现简易音乐播放器组件
Aug 14 Vue.js
Vue中fragment.js使用方法详解
Mar 09 #Javascript
JavaScript编写一个贪吃蛇游戏
Mar 09 #Javascript
canvas压缩图片转换成base64格式输出文件流
Mar 09 #Javascript
Bootstrap笔记之缩略图、警告框实例详解
Mar 09 #Javascript
Bootstrap学习笔记之进度条、媒体对象实例详解
Mar 09 #Javascript
bootstrap实现的自适应页面简单应用示例
Mar 09 #Javascript
js实现3D图片环展示效果
Mar 09 #Javascript
You might like
PHP中使用glob函数实现一句话删除某个目录下的所有文件
2014/07/22 PHP
PHP 常用时间函数资料整理
2016/10/22 PHP
tp5框架的增删改查操作示例
2019/10/31 PHP
再谈javascript图片预加载技术(详细演示)
2011/03/12 Javascript
JavaScript实现拖拽网页内元素的方法
2015/04/15 Javascript
javascript中in运算符用法分析
2015/04/28 Javascript
JavaScript的类型、值和变量小结
2015/07/09 Javascript
jquery实现的Banner广告收缩效果代码
2015/09/02 Javascript
Javascript中的Prototype到底是什么
2016/02/16 Javascript
浅谈javascript中new操作符的原理
2016/06/07 Javascript
使用开源工具制作网页验证码的方法
2016/10/17 Javascript
纯JS代码实现隔行变色鼠标移入高亮
2016/11/23 Javascript
JavaScript实现倒计时跳转页面功能【实用】
2016/12/13 Javascript
vue 修改 data 数据问题并实时显示的方法
2018/08/27 Javascript
JavaScript模板引擎应用场景及实现原理详解
2018/12/14 Javascript
详解小程序之简单登录注册表单验证
2019/05/13 Javascript
ES6 Set结构的应用实例分析
2019/06/26 Javascript
Vue仿百度搜索功能
2020/12/28 Vue.js
使用Python构建Hopfield网络的教程
2015/04/14 Python
Python实现线程池代码分享
2015/06/21 Python
在cmd中运行.py文件: python的操作步骤
2018/05/12 Python
Python实现的拟合二元一次函数功能示例【基于scipy模块】
2018/05/15 Python
Python对象转换为json的方法步骤
2019/04/25 Python
对PyQt5中树结构的实现方法详解
2019/06/17 Python
详解Python 重学requests发起请求的基本方式
2020/02/07 Python
使用keras实现densenet和Xception的模型融合
2020/05/23 Python
基于python实现监听Rabbitmq系统日志代码示例
2020/11/28 Python
美国知名的旅游网站:OneTravel
2018/10/09 全球购物
波兰购物网站:MALL.PL
2019/05/01 全球购物
初一地理教学反思
2014/01/16 职场文书
个人公司授权委托书范本
2014/10/12 职场文书
初中教师个人总结
2015/02/10 职场文书
论文致谢词范文
2015/05/14 职场文书
家长会后的感想
2015/08/11 职场文书
2019关于垃圾分类处理的调查报告
2019/12/26 职场文书
Java 深入探究讲解简单工厂模式
2022/04/07 Java/Android