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 相关文章推荐
jQuery 无限级菜单的简单实例
Feb 21 Javascript
js实现鼠标划过给div加透明度的方法
May 25 Javascript
解决wx.onMenuShareTimeline出现的问题
Aug 16 Javascript
用自定义图片代替原生checkbox实现全选,删除以及提交的方法
Oct 18 Javascript
jquery dialog获取焦点的方法
Feb 09 Javascript
微信小程序中input标签详解及简单实例
May 18 Javascript
vue左右侧联动滚动的实现代码
Jun 06 Javascript
koa socket即时通讯的示例代码
Sep 07 Javascript
实例讲解v-if和v-show的区别
Jan 31 Javascript
浅谈一种让小程序支持JSX语法的新思路
Jun 16 Javascript
原生javascript中this几种常见用法总结
Feb 24 Javascript
JavaScript数组 几个常用方法总结
Nov 11 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
php中的boolean(布尔)类型详解
2013/10/28 PHP
php中JSON的使用与转换
2015/01/14 PHP
PHP中COOKIES使用示例
2015/07/26 PHP
Symfony2框架创建项目与模板设置实例详解
2016/03/17 PHP
php+mysql+ajax实现单表多字段多关键词查询的方法
2017/04/15 PHP
使用 laravel sms 构建短信验证码发送校验功能
2017/11/06 PHP
javascript动画效果类封装代码
2007/08/28 Javascript
获取数组中最大最小值方法js代码(自写)
2013/08/12 Javascript
总结JavaScript中布尔操作符||与&amp;&amp;的使用技巧
2015/11/17 Javascript
javascript基于原型链的继承及call和apply函数用法分析
2016/12/15 Javascript
canvas学习之API整理笔记(二)
2016/12/29 Javascript
jQuery密码强度验证控件使用详解
2017/01/05 Javascript
基于nodejs 的多页面爬虫实例代码
2017/05/31 NodeJs
js定义类的方法示例【ES5与ES6】
2019/07/30 Javascript
JavaScript实现京东放大镜效果
2019/12/03 Javascript
js实现简单的秒表
2020/01/16 Javascript
js实现无缝轮播图
2020/03/09 Javascript
Python入门之三角函数atan2()函数详解
2017/11/08 Python
详解python的sorted函数对字典按key排序和按value排序
2018/08/10 Python
Python中的CSV文件使用&quot;with&quot;语句的方式详解
2018/10/16 Python
Python提取特定时间段内数据的方法实例
2019/04/01 Python
python NumPy ndarray二维数组 按照行列求平均实例
2019/11/26 Python
django框架forms组件用法实例详解
2019/12/10 Python
深入了解Python 变量作用域
2020/07/24 Python
Django中和时区相关的安全问题详解
2020/10/12 Python
python 写一个文件分发小程序
2020/12/05 Python
微软香港官网及网上商店:Microsoft HK
2016/09/01 全球购物
Sunglasses Shop英国:欧洲领先的太阳镜在线供应商之一
2018/09/19 全球购物
移风易俗倡议书
2014/04/15 职场文书
六年级学生评语
2014/04/22 职场文书
企业管理标语
2014/06/10 职场文书
歌颂党的演讲稿
2014/09/10 职场文书
家长会欢迎词
2015/01/23 职场文书
运动与健康自我评价
2015/03/09 职场文书
李强感恩观后感
2015/06/17 职场文书
部分武汉产收音机展览
2022/04/07 无线电