草庐IT

vue filter(过滤器) 详解

老王不秃头 2023-07-12 原文
  • 过滤器顾名思义就是一个数据格式经过了过滤器后出来另一种数据格式。
  • vue中的过滤器分为两种:局部过滤器全局过滤器

全局过滤器

全局过滤器在 main.js 内直接通过 Vue.filter('过滤器名称',函数) 来定义,它定义好了之后,在所有的组件内都可以使用.

// my-filter是过滤器名称
// 函数第一个参数是需要过滤的数据.
// 函数第二个参数是给过滤器传递的值.
  Vue.filter('my-filter',(value,...args)=>{
    //数据处理的过程
    return 数据处理后的结果
  })
var app = new Vue({
    el: '#app',
    data: {
      price:null,
      Value: '原始数据'
    })
<div id='app'>
    <p>{{value | my-filter}}</p>
  </div>

{{ value | my-filter }}把 value 的值原封不动的传递给 my-filter

在 my-filter 方法定义的第一个参数 value 就等于 {{ value | my-filter }}里面的value

局部过滤器

定义在组件内部 filters 属性上.它只能在此组件内部使用.

<div id="app">
    <p>message的值为:{{time | filterTime }}</p>
</div>
<script>
   const vm = new Vue({
        el:"#app",
        data:{
            time: "2022-10-12 10:08:32"
        },
        //局部过滤器注册
        filters:{
            //注意: 过滤器函数形参中的time,永远是前面的那个值
            filterTime(time){
                //对time做一个处理
                let month = item.split(' ')[0].split('-')[1]
					let day = item.split(' ')[0].split('-')[2]
					let hour = item.split(' ')[1].split(':')[0]
					let second = item.split(' ')[1].split(':')[1]
					return month + '.' + day + ' ' + hour + ":" + second
            }
        }
    }) 
 
// 最后的结果就展示10-12 10:08:32
</script>

 注意:全局注册时是filter,没有s的。而组件过滤器是filters,是有s的,这要注意了,虽然你写的时候没有s不报错,但是过滤器是没有效果

局部过滤器的连用方法

<div id="app">
    <p>message的值为:{{time | filterTime | filterTime1}}</p>
</div>
<script>
   const vm = new Vue({
        el:"#app",
        data:{
            time: "2022-10-12 10:08:32"
        },
        //局部过滤器注册
        filters:{
            //注意: 过滤器函数形参中的time,永远是前面的那个值
            filterTime(time){
                //对time做一个处理
                let month = item.split(' ')[0].split('-')[1]
					let day = item.split(' ')[0].split('-')[2]
					let hour = item.split(' ')[1].split(':')[0]
					let second = item.split(' ')[1].split(':')[1]
					return month + '.' + day + ' ' + hour + ":" + second
            }
            filterTime1(time){
                return time + '加油'
            }
    }) 
 
// 最后的结果就展示10-12 10:08:32加油
</script>

 过滤器也可携带参数

{{time | filterTime('加油',学习)}}

<div id="app">
    <p>message的值为:{{time | filterTime('加油',学习)}}</p>
</div>
<script>
   const vm = new Vue({
        el:"#app",
        data:{
            time: "2023"
        },
        //局部过滤器注册
        filters:{
            //注意: 过滤器函数形参中的time,永远是前面的那个值
            filterTime(time,val1,val2){
              return time + val1 + val2
            }
    }) 
 
// 最后的结果就展示2023加油学习

 {{time,time1 | filterTime}}

<div id="app">
    <p>message的值为:{{time,time1 | filterTime}}</p>
</div>
<script>
   const vm = new Vue({
        el:"#app",
        data:{
            time: "2023"
            time1: "10"
        },
        //局部过滤器注册
        filters:{
            //注意: filterTime为过滤器名称 
            filterTime(time,time1){
              return time + time1
            }
    }) 
 
// 最后的结果就展示2023-10

有关vue filter(过滤器) 详解的更多相关文章

  1. ruby-on-rails - 事件管理员日期过滤器日期格式自定义 - 2

    是否有简单的方法来更改默认ISO格式(yyyy-mm-dd)的ActiveAdmin日期过滤器显示格式? 最佳答案 您可以像这样为日期选择器提供额外的选项,而不是覆盖js:=f.input:my_date,as::datepicker,datepicker_options:{dateFormat:"mm/dd/yy"} 关于ruby-on-rails-事件管理员日期过滤器日期格式自定义,我们在StackOverflow上找到一个类似的问题: https://s

  2. ruby-on-rails - 在 Controller 中干净地处理多个过滤器(参数) - 2

    我有一个名为Post的类,我需要能够适应以下场景:如果用户选择了一个类别,则只显示该类别的帖子如果用户选择了一种类型,则只显示该类型的帖子如果用户选择了一个类别和类型,则只显示该类别中该类型的帖子如果用户没有选择任何内容,则显示所有帖子我想知道我的Controller是否不可避免地会因大量条件语句而显得粗糙...这是我解决此问题的错误方法-有谁知道我如何才能做到这一点?classPostsController 最佳答案 您最好遵循“胖模型,瘦Controller”的惯例,这意味着您应该将这种逻辑放在模型本身中。Post类应该能够报告

  3. ruby-on-rails - 如何处理 Grape 中特定操作的过滤器之前? - 2

    我正在我的Rails项目中安装Grape以构建RESTfulAPI。现在一些端点的操作需要身份验证,而另一些则不需要身份验证。例如,我有users端点,看起来像这样:moduleBackendmoduleV1classUsers现在如您所见,除了password/forget之外的所有操作都需要用户登录/验证。创建一个新的端点也没有意义,比如passwords并且只是删除password/forget从逻辑上讲,这个端点应该与用户资源。问题是Grapebefore过滤器没有像except,only这样的选项,我可以在其中说对某些操作应用过滤器。您通常如何干净利落地处理这种情况?

  4. ruby-on-rails - Rails 3 - 过滤器链暂停为 :authentication rendered or redirected - 2

    我仍然收到标题中的“错误”消息,但不知道如何解决。在ApplicationController中,classApplicationController在routes.rb#match'set_activity_account/:id/:value'=>'users#account_activity',:as=>:set_activity_account--thisdoesn'tworkaswell..resources:usersdomemberdoget:action_a,:action_bendcollectiondoget'account_activity'endend和User

  5. ruby-on-rails - ActiveAdmin 自定义选择过滤器下拉名称 - 2

    对于用户模型,我有一个过滤器来检查用户的预订状态,该状态由整数值(0、1或2)表示。UserActiveAdmin索引页上的过滤器是通过以下代码实现的:filter:booking_status,as::select然而,这会导致下拉选项为0、1或2。当管理员用户从下拉列表中选择它们时,我更愿意自己将它们命名为“未完成”、“待定”和“已确认”之类的名称。有没有办法在不改变booking_status在模型中的表示方式的情况下做到这一点? 最佳答案 假设booking_status是模型中的枚举字段,您可以使用:过滤器:booking

  6. 物联网MQTT协议详解 - 2

    一、什么是MQTT协议MessageQueuingTelemetryTransport:消息队列遥测传输协议。是一种基于客户端-服务端的发布/订阅模式。与HTTP一样,基于TCP/IP协议之上的通讯协议,提供有序、无损、双向连接,由IBM(蓝色巨人)发布。原理:(1)MQTT协议身份和消息格式有三种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。MQTT传输的消息分为:主题(Topic)和负载(payload)两部分Topic,可以理解为消息的类型,订阅者订阅(Su

  7. Tcl脚本入门笔记详解(一) - 2

    TCL脚本语言简介•TCL(ToolCommandLanguage)是一种解释执行的脚本语言(ScriptingLanguage),它提供了通用的编程能力:支持变量、过程和控制结构;同时TCL还拥有一个功能强大的固有的核心命令集。TCL经常被用于快速原型开发,脚本编程,GUI和测试等方面。•实际上包含了两个部分:一个语言和一个库。首先,Tcl是一种简单的脚本语言,主要使用于发布命令给一些互交程序如文本编辑器、调试器和shell。由于TCL的解释器是用C\C++语言的过程库实现的,因此在某种意义上我们又可以把TCL看作C库,这个库中有丰富的用于扩展TCL命令的C\C++过程和函数,所以,Tcl是

  8. ruby - 如何通过 belongs_to 按外部 id 和本地属性进行过滤? - 2

    以下模型通过belongs_to链接:require'mongoid'classSensorincludeMongoid::Documentfield:sensor_id,type:Stringvalidates_uniqueness_of:sensor_idend...require'mongoid'require_relative'sensor.rb'classSensorDataincludeMongoid::Documentbelongs_to:sensorfield:date,type:Datefield:ozonMax1h,type:Floatfield:ozonMax8h

  9. ruby - Rails+ActiveAdmin - 使用 ransacker 过滤会抛出错误 PG::SyntaxError: ERROR: syntax error at or near "," - 2

    我在RubyonRails4.1.4上有一个项目,使用来自git://github.com/activeadmin/activeadmin的activeadmin1.0.0.pre,pg0.17.1,PostgreSQL9.3在项目中我有这些模型:类用户has_one:账户类账户属于:用户有很多:project_accountshas_many:项目,:through=>:project_accounts类项目#该项目有一个bool属性'archive'has_many:project_accounts类ProjectAccount属于:帐户属于:项目我有一个任务是在索引页面上实现一个

  10. ruby-on-rails - Rails 中的协同过滤 - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我正在寻找一种在Rails中进行协作过滤的解决方案,甚至是可能的示例。到目前为止,我只发现了acts_as_recommendable,它看起来很有用,但我注意到它在过去2年中没有任何更新。有人知道任何其他解决方案和/或示例吗?

随机推荐