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实现双向链表互联网机顶盒实战应用实现
Oct 28 Javascript
js导出table数据到excel即导出为EXCEL文档的方法
Oct 10 Javascript
JavaScript改变CSS样式的方法汇总
May 07 Javascript
实现无刷新联动例子汇总
May 20 Javascript
jquery实现简单的自动播放幻灯片效果
Jun 13 Javascript
Vue监听数组变化源码解析
Mar 09 Javascript
Angular.JS中指令ng-if、ng-show/ng-hide和ng-switch的使用教程
May 07 Javascript
玩转Koa之核心原理分析
Dec 29 Javascript
8 个有用的JS技巧(推荐)
Jul 03 Javascript
解决vue项目input输入框双向绑定数据不实时生效问题
Aug 05 Javascript
快速解决element的autofocus失效问题
Sep 08 Javascript
通过实例解析json与jsonp原理及使用方法
Sep 27 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+jquery编码方面的一些心得(utf-8 gb2312)
2010/10/12 PHP
php笔记之常用文件操作
2010/10/12 PHP
php中用数组的方法设置cookies
2011/04/21 PHP
解析如何通过PHP函数获取当前运行的环境 来进行判断执行逻辑(小技巧)
2013/06/25 PHP
PHP5.3以上版本安装ZendOptimizer扩展
2015/03/27 PHP
laravel-admin 后台表格筛选设置默认的查询日期方法
2019/10/03 PHP
List Information About the Binary Files Used by an Application
2007/06/18 Javascript
通过jquery的$.getJSON做一个跨域ajax请求试验
2011/05/03 Javascript
模拟电子签章盖章效果的jQuery插件源码
2013/06/24 Javascript
JavaScript按位运算符的应用简析
2014/02/04 Javascript
简单的jQuery拖拽排序效果的实现(增强动态)
2017/02/09 Javascript
bootstrap日期控件问题(双日期、清空等问题解决)
2017/04/19 Javascript
浅析Vue中method与computed的区别
2018/03/06 Javascript
node+koa2+mysql+bootstrap搭建一个前端论坛
2018/05/06 Javascript
微信网页授权并获取用户信息的方法
2018/07/30 Javascript
ES6基础之解构赋值(destructuring assignment)
2019/02/21 Javascript
[05:20]卡尔工作室_DOTA2新手教学_DOTA2超强新手功能
2013/04/22 DOTA
Python中对元组和列表按条件进行排序的方法示例
2015/11/10 Python
Python实现读取文件最后n行的方法
2017/02/23 Python
python pandas dataframe 行列选择,切片操作方法
2018/04/10 Python
ubuntu系统下使用pm2设置nodejs开机自启动的方法
2018/05/12 NodeJs
Python实现微信翻译机器人的方法
2019/08/13 Python
pandas的resample重采样的使用
2020/04/24 Python
加拿大花店:1800Flowers.ca
2016/11/16 全球购物
Needle & Thread官网:英国仙女品牌
2018/01/13 全球购物
德国游戏机商店:Konsolenkost
2019/12/08 全球购物
WatchShop法国:英国排名第一的独立手表零售商
2020/02/17 全球购物
Orlebar Brown官网:设计师泳裤和泳装
2020/12/08 全球购物
List, Set, Map是否继承自Collection接口?
2016/05/16 面试题
岗位职责范本
2013/11/23 职场文书
银行柜员应聘推荐信范文
2013/11/24 职场文书
令人印象深刻的自荐信
2014/05/25 职场文书
私人委托书格式
2014/09/10 职场文书
比赛主持人开场白
2015/05/29 职场文书
如何使用python包中的sched事件调度器
2022/04/30 Python
配置nginx负载均衡
2022/05/06 Servers