Vue2.0系列之过滤器的使用


Posted in Javascript onMarch 01, 2018

vue2.0已经废弃了过滤器,需要自定义过滤器,用于一些常见的文本格式化。

感觉超级好用!!

过滤器可以用在两个地方:双花括号插值 和 v-bind表达式。

过滤器应该被添加在JavaScript表达式的尾部,由管道符指示。

一、注册全局过滤器

注意事项:
1、全局方法Vue.filter()注册一个自定义过滤器,必须放在vue实例化前面
2、过滤器函数始终以表达式的值作为第一个参数,带引号的参数视为字符串,而不带引号的参数按表达式计算
3、可以设置两个过滤器参数,前提这两个过滤器处理的不冲突
4、用户从input输入的数据在会传到model之前也可以先处理

案例

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>过滤器</title>
</head>
<body>

<div id="app">
  <!-- 首字符串大写 -->
  <div>首字母大写过滤器:{{str | upcase}}</div>
  <!-- 给过滤器传入参数 -->
  <p>求和过滤器:{{message | sum(10,20)}}</p> 
</div>

<script type="text/javascript" src='https://i0.jrjimg.cn/zqt-red-1000/focus/focus2017YMZ/teamFrighting/js/vue.min.js'></script>
<script type="text/javascript">
    //全局方法 Vue.filter()注册一个自定义过滤器,必须放在Vue实例化前面
    // 注册一个首字母大写的过滤器
    Vue.filter("upcase", function(value) { 
        if (!value) return ''
        value = value.toString()
        return value.charAt(0).toUpperCase() + value.slice(1)
    });
    // 全局注册一个求和过滤器
    Vue.filter('sum', function (value, a, b) {
      return value + a + b;
    });

    var demo = new Vue({
      el: "#app",
      data: {
        str:'hello',
        message:12
      }
    });
</script>
</body>
</html>

案例效果:

Vue2.0系列之过滤器的使用

二、注册在实例化内部

过滤器也可以注册在实例内部,仅在使用它的实例里面注册。

根据以上案例改编:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title></title>
</head>
<body>

<div id="app">
  <!-- 首字符串大写 -->
  <div>首字母大写过滤器:{{str | upcase}}</div>
  <!-- 给过滤器传入参数 -->
  <p>求和过滤器:{{message | sum(10,20)}}</p> 
</div>

<script type="text/javascript" src='https://i0.jrjimg.cn/zqt-red-1000/focus/focus2017YMZ/teamFrighting/js/vue.min.js'></script>
<script type="text/javascript">
    var demo = new Vue({
      el: "#app",
      data: {
        str:'hello',
        message:12
      },
      filters: {
        upcase:function(value){
          if (!value) return ''
          value = value.toString()
          return value.charAt(0).toUpperCase() + value.slice(1)
        },
        sum:function(value, a, b){
          return value + a + b;
        }
      }
    });

</script>
</body>
</html>

效果:

Vue2.0系列之过滤器的使用

三、常见过滤器

根据时间戳转化成时间格式:mm-dd hh:tt

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title></title>
</head>
<body>

<div id="app">
  <!-- 将时间戳转化为时间 -->
  <h1>根据时间戳转化为时间:{{ str | formateTime}}</h1>
</div>

<script type="text/javascript" src='https://i0.jrjimg.cn/zqt-red-1000/focus/focus2017YMZ/teamFrighting/js/vue.min.js'></script>
<script type="text/javascript">
    var demo = new Vue({
      el: "#app",
      data: {
        str:1517568434324,
      },
      filters: {
        formateTime:function(nS){
          return ((new Date(nS).getMonth()+1)<10?'0'+(new Date(nS).getMonth()+1):(new Date(nS).getMonth()+1)) + '-' + (new Date(nS).getDate()<10?'0'+new Date(nS).getDate():new Date(nS).getDate()) + ' ' + (new Date(nS).getHours()<10?'0'+new Date(nS).getHours():new Date(nS).getHours()) + ':' + (new Date(nS).getMinutes()<10?'0'+new Date(nS).getMinutes():new Date(nS).getMinutes())
        }
      }
    });

</script>
</body>
</html>

案例效果:

Vue2.0系列之过滤器的使用

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

Javascript 相关文章推荐
js DataSet数据源处理代码
Mar 29 Javascript
js获取html文件的思路及示例
Sep 17 Javascript
用jQuery与JSONP轻松解决跨域访问的问题
Feb 04 Javascript
html5+javascript制作简易画板附图
Apr 25 Javascript
jquery使用ajax实现微信自动回复插件
Apr 28 Javascript
JavaScript数组常用操作技巧汇总
Nov 17 Javascript
高性能JavaScript模板引擎实现原理详解
Feb 05 Javascript
jQuery常用且重要方法汇总
Jul 13 Javascript
JavaScript实现页面跳转的几种常用方式
Nov 28 Javascript
javascript动态添加checkbox复选框的方法
Dec 23 Javascript
JS实现响应鼠标点击动画渐变弹出层效果代码
Mar 25 Javascript
js实现数据导出为EXCEL(支持大量数据导出)
Mar 31 Javascript
浅谈Vue Element中Select下拉框选取值的问题
Mar 01 #Javascript
vue.js 获取select中的value实例
Mar 01 #Javascript
Vue中的slot使用插槽分发内容的方法
Mar 01 #Javascript
在vue中封装可复用的组件方法
Mar 01 #Javascript
JavaScript判断日期时间差的实例代码
Mar 01 #Javascript
Vue 父子组件的数据传递、修改和更新方法
Mar 01 #Javascript
vue2.0 子组件改变props值,并向父组件传值的方法
Mar 01 #Javascript
You might like
自己动手做一个SQL解释器
2006/10/09 PHP
discuz Passport 通行证 整合笔记
2008/06/30 PHP
用js进行url编码后用php反解以及用php实现js的escape功能函数总结
2010/02/08 PHP
PHP设计模式之迭代器模式的深入解析
2013/06/13 PHP
具有时效性的php加密解密函数代码
2013/06/19 PHP
php输入数据统一类实例
2015/02/23 PHP
php+javascript实现的动态显示服务器运行程序进度条功能示例
2017/08/07 PHP
jQuery 动画弹出窗体支持多种展现方式
2010/04/29 Javascript
重载toString实现JS HashMap分析
2011/03/13 Javascript
javascript开发随笔二 动态加载js和文件
2011/11/25 Javascript
jQuery load方法用法集锦
2011/12/06 Javascript
Javascript 浮点运算的问题分析与解决方法
2013/08/27 Javascript
jQuery截取指定长度字符串的实现原理及代码
2014/07/01 Javascript
Javascript正则控制文本框只能输入整数或浮点数
2014/09/02 Javascript
js实现按Ctrl+Enter发送效果
2014/09/18 Javascript
js实现select跳转功能代码
2014/10/22 Javascript
JavaScript:Date类型全面解析
2016/05/19 Javascript
JavaScript必知必会(十) call apply bind的用法说明
2016/06/08 Javascript
JS取数字小数点后两位或n位的简单方法
2016/10/24 Javascript
AngularJS 使用ng-repeat报错 [ngRepeat:dupes]
2017/01/19 Javascript
Node.js之网络通讯模块实现浅析
2017/04/01 Javascript
在vue中通过axios异步使用echarts的方法
2018/01/13 Javascript
微信小程序picker组件关于objectArray数据类型的绑定方法
2019/03/13 Javascript
Node.js API详解之 util模块用法实例分析
2020/05/09 Javascript
基于Vue全局组件与局部组件的区别说明
2020/08/11 Javascript
基于vue实现微博三方登录流程解析
2020/11/04 Javascript
python读取浮点数和读取文本文件示例
2014/05/06 Python
python标准算法实现数组全排列的方法
2015/03/17 Python
python实现淘宝秒杀聚划算抢购自动提醒源码
2020/06/23 Python
python实现AES加密和解密
2019/03/27 Python
教师自我评价范例
2013/09/24 职场文书
委托书样本
2014/04/02 职场文书
2014幼儿园家长工作总结
2014/11/10 职场文书
资料员岗位职责
2015/02/10 职场文书
2015暑期爱心支教策划书
2015/07/14 职场文书
社区干部培训心得体会
2016/01/06 职场文书