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 相关文章推荐
Javascript 类与静态类的实现(续)
Apr 02 Javascript
SharePoint 客户端对象模型 (一) ECMA Script
May 22 Javascript
jQuery 过滤not()与filter()实例代码
May 10 Javascript
jQuery 翻牌或百叶窗效果(内容三秒自动切换)
Jun 14 Javascript
js在输入框屏蔽按键,只能键入数字的示例代码
Jan 03 Javascript
JavaScript eval() 函数介绍及应用示例
Jul 29 Javascript
浅谈javascript中return语句
Jul 15 Javascript
Vue2.0仿饿了么webapp单页面应用详细步骤
Jul 08 Javascript
vue代码分割的实现(codesplit)
Nov 13 Javascript
傻瓜式vuex语法糖kiss-vuex整理
Dec 21 Javascript
微信小程序实现展示评分结果功能
Feb 15 Javascript
BootStrap前端框架使用方法详解
Feb 26 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
初探PHP5
2006/10/09 PHP
PHP Reflection API详解
2015/05/12 PHP
Joomla数据库操作之JFactory::getDBO用法
2016/05/05 PHP
PHP聚合式迭代器接口IteratorAggregate用法分析
2017/12/28 PHP
PHP命名空间简单用法示例
2018/12/28 PHP
asp 取文本框名称代码
2008/12/02 Javascript
javascript 词法作用域和闭包分析说明
2010/08/12 Javascript
某人初学javascript的时候写的学习笔记
2010/12/30 Javascript
模仿百度三维地图的js数据分享
2011/05/12 Javascript
js 弹出框只弹一次(二次修改之后的)
2013/11/26 Javascript
一个CSS+jQuery实现的放大缩小动画效果
2014/02/19 Javascript
JQuery判断radio是否选中并获取选中值的示例代码
2014/10/17 Javascript
js仿百度音乐全选操作
2017/01/13 Javascript
Vue.js实现分页查询功能
2020/11/15 Javascript
web前端vue之vuex单独一文件使用方式实例详解
2018/01/11 Javascript
vue bus全局事件中心简单Demo详解
2018/02/26 Javascript
使用use注册Vue全局组件和全局指令的方法
2018/03/08 Javascript
浅谈Vue数据响应思路之数组
2018/11/06 Javascript
vue监听用户输入和点击功能
2019/09/27 Javascript
jsonp格式前端发送和后台接受写法的代码详解
2019/11/07 Javascript
Python中的ctime()方法使用教程
2015/05/22 Python
Python时间戳使用和相互转换详解
2017/12/11 Python
python 计算数组中每个数字出现多少次--“Bucket”桶的思想
2017/12/19 Python
Python实现的txt文件去重功能示例
2018/07/07 Python
基于wxPython的GUI实现输入对话框(2)
2019/02/27 Python
Python中生成一个指定长度的随机字符串实现示例
2019/11/06 Python
CSS3网格的三个新特性详解
2014/04/04 HTML / CSS
利用html5 file api读取本地文件示例(如图片、PDF等)
2018/03/07 HTML / CSS
党员干部2014全国两会学习心得体会
2014/03/10 职场文书
社区创先争优承诺书
2014/08/30 职场文书
学习党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
教师群众路线教育实践活动个人对照检查材料
2014/11/04 职场文书
2014年销售人员工作总结
2014/11/27 职场文书
办公室岗位职责
2015/02/04 职场文书
项目投资意向书范本
2015/05/09 职场文书
Spring boot实现上传文件到本地服务器
2022/08/14 Java/Android