全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

详解Vue自定义过滤器的实现

一 自定义过滤器(注册在Vue全局)

注意事项:

(1)全局方法 Vue.filter() 注册一个自定义过滤器,必须放在Vue实例化前面

(2) 过滤器函数始终以表达式的值作为第一个参数。带引号的参数视为字符串,而不带引号的参数按表达式计算

(3)可以设置两个过滤器参数,前提是这两个过滤器处理的不冲突

(4)用户从input输入的数据在回传到model之前也可以先处理

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>vue自定义过滤器</title>
    <script src="../js/vue.js" type="text/javascript" charset="utf-8"></script>
    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
  </head>
  <body>
    <div class="test">
      <p>{{message | sum}}</p>
      <p>{{message | cal 10 20}}</p> <!--过滤器函数始终以表达式的值作为第一个参数。带引号的参数视为字符串,而不带引号的参数按表达式计算。-->
      <p>{{message | sum | currency }}</p> <!--添加两个过滤器,注意不要冲突-->
      
      <input type="text" v-model="message | change"> <!--用户从input输入的数据在回传到model之前也可以先处理-->
      
    </div>
    <script type="text/javascript">
    
//    -----------------------------------------华丽分割线(从model->view)---------------------------------------
      Vue.filter("sum", function(value) {  //全局方法 Vue.filter() 注册一个自定义过滤器,必须放在Vue实例化前面
        return value + 4;
      });
      
      Vue.filter('cal', function (value, begin, xing) {  //全局方法 Vue.filter() 注册一个自定义过滤器,必须放在Vue实例化前面
        return value + begin + xing;
      });

//    -----------------------------------------华丽分割线(从view->model)---------------------------------------
      Vue.filter("change", {
        read: function (value) { // model -> view 在更新 `<input>` 元素之前格式化值
          return value;
        },
        write: function (newVal,oldVal) { // view -> model 在写回数据之前格式化值
          console.log("newVal:"+newVal); 
          console.log("oldVal:"+oldVal);
          return newVal;
        }
      });

      var myVue = new Vue({
        el: ".test",
        data: {
          message:12
        }
      });
      
    </script>
  </body>
</html>

二 自定义过滤器(注册在实例化内部)

上面的例子直接注册在Vue全局上面,其他不用这个过滤器的实例也会被迫接受,其实过滤器可以注册在实例内部,仅在使用它的实例里面注册

上面的程序改写为:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>vue自定义过滤器</title>
    <script src="../js/vue.js" type="text/javascript" charset="utf-8"></script>
    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
  </head>
  <body>
    <div class="test">
      <p>{{message | sum}}</p>
      <p>{{message | cal 10 20}}</p> <!--过滤器函数始终以表达式的值作为第一个参数。带引号的参数视为字符串,而不带引号的参数按表达式计算。-->
      <p>{{message | sum | currency }}</p> <!--添加两个过滤器,注意不要冲突-->
      
      <input type="text" v-model="message | change"> <!--用户从input输入的数据在回传到model之前也可以先处理-->
      
    </div>
    <script type="text/javascript">
      Vue.filter("change", {
        read: function (value) { // model -> view 在更新 `<input>` 元素之前格式化值
          return value;
        },
        write: function (newVal,oldVal) { // view -> model 在写回数据之前格式化值
          console.log("newVal:"+newVal); 
          console.log("oldVal:"+oldVal);
          return newVal;
        }
      });

      var myVue = new Vue({
        el: ".test",
        data: {
          message:12
        },
        filters: {
          sum: function (value) {
            return value + 4;
          },
          cal: function (value, begin, xing) {
            return value + begin + xing;
          }
        }
      });
      
    </script>
  </body>
</html>

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


# Vue自定义过滤器  # vue.js  # 自定义过滤器  # vue.js过滤器  # Vue.js每天必学之过滤器与自定义过滤器  # Vue过滤器的用法和自定义过滤器使用  # vue2.0 自定义日期时间过滤器  # vue自定义filters过滤器  # vue自定义过滤器创建和使用方法详解  # vue 过滤器和自定义指令的使用  # vue定义私有过滤器和基本使用  # Vue中过滤器定义以及使用方法实例  # 自定义  # 放在  # 第一个  # 不带  # 回传  # 分割线  # 也会  # 这两个  # 大家多多  # meta  # utf  # charset  # head  # DOCTYPE  # html  # gt 


相关文章: 单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?  广州建站公司哪家好?十大优质服务商推荐  公司网站制作价格怎么算,公司办个官网需要多少钱?  小程序网站制作需要准备什么资料,如何制作小程序?  定制建站模板如何实现SEO优化与智能系统配置?18字教程  建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析  如何在Golang中处理模块冲突_解决依赖版本不兼容问题  制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?  制作网站外包平台,自动化接单网站有哪些?  IOS倒计时设置UIButton标题title的抖动问题  香港服务器部署网站为何提示未备案?  番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?  商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?  如何续费美橙建站之星域名及服务?  黑客如何通过漏洞一步步攻陷网站服务器?  实现虚拟支付需哪些建站技术支撑?  建站之星后台管理系统如何操作?  如何快速搭建自助建站会员专属系统?  内部网站制作流程,如何建立公司内部网站?  详解jQuery停止动画——stop()方法的使用  广东企业建站网站优化与SEO营销核心策略指南  外贸公司网站制作,外贸网站建设一般有哪些步骤?  如何挑选优质建站一级代理提升网站排名?  临沂网站制作公司有哪些,临沂第四中学官网?  c# 在高并发下使用反射发射(Reflection.Emit)的性能  如何批量查询域名的建站时间记录?  Swift中switch语句区间和元组模式匹配  ,网站推广常用方法?  家庭建站与云服务器建站,如何选择更优?  小建面朝正北,A点实际方位是否存在偏差?  如何快速搭建响应式可视化网站?  官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站  建站上传速度慢?如何优化加速网站加载效率?  如何快速建站并高效导出源代码?  零服务器AI建站解决方案:快速部署与云端平台低成本实践  如何设置并定期更换建站之星安全管理员密码?  ,网页ppt怎么弄成自己的ppt?  Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解  大连 网站制作,大连天途有线官网?  整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?  网站好制作吗知乎,网站开发好学吗?有什么技巧?  建站之星安装需要哪些步骤及注意事项?  Java解压缩zip - 解压缩多个文件或文件夹实例  建站主机空间推荐 高性价比配置与快速部署方案解析  动图在线制作网站有哪些,滑动动图图集怎么做?  建站之星Pro快速搭建教程:模板选择与功能配置指南  如何高效完成独享虚拟主机建站?  网站插件制作软件免费下载,网页视频怎么下到本地插件?  建站之星如何助力网站排名飙升?揭秘高效技巧  简历在线制作网站免费版,如何创建个人简历? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。