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 autocomplete插件修改
Apr 17 Javascript
js导航菜单(自写)简单大方
Mar 28 Javascript
分享Javascript实用方法二
Dec 13 Javascript
使用jQuery Mobile框架开发移动端Web App的入门教程
May 17 Javascript
JS模仿腾讯图片站的图片翻页按钮效果完整实例
Jun 21 Javascript
微信小程序日历组件使用方法详解
Dec 29 Javascript
vue.js中ref和$refs的使用及示例讲解
Aug 14 Javascript
微信小程序 textarea 层级过高问题简单解决方案
Oct 14 Javascript
使用JS监听键盘按下事件(keydown event)
Nov 07 Javascript
jQuery实现王者荣耀手风琴效果
Jan 17 jQuery
JQuery绑定事件四种实现方法解析
Dec 02 jQuery
vue-cli3.x配置全局的scss的时候报错问题及解决
Apr 30 Vue.js
浅谈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中GET变量的使用
2006/10/09 PHP
一个颜色轮换的简单例子
2006/10/09 PHP
PHP显示今天、今月、上月、今年的起点/终点时间戳的代码
2011/05/25 PHP
php返回相对时间(如:20分钟前,3天前)的方法
2015/04/14 PHP
CodeIgniter分页类pagination使用方法示例
2016/03/28 PHP
详解PHP匿名函数与注意事项
2016/03/29 PHP
PHP7 mongoDB扩展使用的方法分享
2019/05/02 PHP
JQuery实现用户名无刷新验证的小例子
2013/03/22 Javascript
浅析IE10兼容性问题(frameset的cols属性)
2014/01/03 Javascript
JS基于面向对象实现的拖拽库实例
2015/09/24 Javascript
jQuery实现简单的文件上传进度条效果
2020/03/26 Javascript
JavaScript数据结构与算法之链表
2016/01/29 Javascript
详解微信小程序 页面跳转 传递参数
2016/12/08 Javascript
微信公众号开发 实现点击返回按钮就返回到聊天界面
2016/12/15 Javascript
安装vue-cli报错 -4058 的解决方法
2017/10/19 Javascript
vue template中slot-scope/scope的使用方法
2018/09/06 Javascript
Nuxt升级2.0.0时出现的问题(小结)
2018/10/08 Javascript
探索JavaScript中私有成员的相关知识
2019/06/13 Javascript
vuex + keep-alive实现tab标签页面缓存功能
2019/10/17 Javascript
微信小程序入门之指南针
2020/10/22 Javascript
[01:07:13]TNC vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
十条建议帮你提高Python编程效率
2016/02/16 Python
TFRecord文件查看包含的所有Features代码
2020/02/17 Python
python logging 日志的级别调整方式
2020/02/21 Python
Ubuntu中配置TensorFlow使用环境的方法
2020/04/21 Python
python中sympy库求常微分方程的用法
2020/04/28 Python
浅析Python 中的 WSGI 接口和 WSGI 服务的运行
2020/12/09 Python
css3动画事件—webkitAnimationEnd与计时器time事件
2013/01/31 HTML / CSS
实例讲解CSS3中的border-radius属性
2015/08/18 HTML / CSS
Space NK美国站:英国高端美妆护肤商城
2017/05/22 全球购物
文明风采获奖感言
2014/02/18 职场文书
研究生导师评语
2014/12/31 职场文书
财务总监岗位职责范本
2015/04/03 职场文书
2015年“7.11”世界人口日宣传活动方案
2015/05/06 职场文书
2015年度考核个人工作总结
2015/10/24 职场文书
前端框架ECharts dataset对数据可视化的高级管理
2022/12/24 Javascript