Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >vue中的过滤器

vue中的过滤器

作者头像
IT人一直在路上
发布于 2019-09-18 02:28:05
发布于 2019-09-18 02:28:05
1K00
代码可运行
举报
文章被收录于专栏:前端重点笔记前端重点笔记
运行总次数:0
代码可运行
  • 过滤器
  1. 过滤器规则

  Vue.js 允许你自定义过滤器,可被用于一些常见的文本格式化。过滤器可以用在两个地方:

双花括号插值{{}}和 v-bind 表达式 (后者从 2.1.0+ 开始支持)。过滤器应该被添加在 JavaScript 表达式的尾部,由“管道”符号指示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!-- 在双花括号中 -->
{{ name | Upper }}

<!--`v-bind`-->
<div v-bind:id="martin | Upper"></div>

过滤器分为全局过滤器和本地过滤器,全局过滤器顾名思义就是所有Vue实例挂载的元素内都能使用,而本地过滤器则是指只有过滤器函数所在的Vue实例挂载的元素内可以使用

全局过滤器:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Vue.filter('Upper',function (name) {
        return name.toUpperCase();
});

本地过滤器:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  var vm=new Vue({
        el: '#app',
        data: {
            name:'martin'
        },
        filters:{
            Upper:function (name) {
                return name.toUpperCase()
            }
        }
    })

  2.串联过滤器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{{name | filterA | filterB }}

  解释:

第一步:先把name放到filterA过滤器中进行过滤

    第二步:将第一步过滤器的结果再放到filterB再进行过滤,显示最终过滤结果

3.过滤器也可以接收参数,因为过滤器说到底只是一个函数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{{ name | filterA('arg1', arg2) }}

  解释:

    filterA 在这里应该定义为接收三个参数的过滤器函数。其中 name 的值作为第一个参数,字符串arg1 作为第二个参数,表达式 arg2 的值作为第三个参数。

  最后送给大家一个实例:

  源代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="./bootstrap/js/jquery-1.10.1.js"></script>
    <link rel="stylesheet" href="./bootstrap/css/bootstrap.min.css">
    <script src="./bootstrap/js/bootstrap.min.js"></script>

</head>
<body>
<div id="app">
    <div class="form-inline">
        <label>id:
            <input type="text" class="form-control" placeholder="请输入你的id" v-model="id">
        </label>
        <label>name:
            <input type="text" class="form-control" placeholder="请输入你的name" v-model="name">
        </label>
        <button class="btn btn-success" @click="add">add</button>
        <label>请输入你的搜索关键字:
            <input type="text" class="form-control" placeholder="请输入你的搜索关键字" v-model="keyword">
        </label>
        <button class="btn btn-success" @click="search(keyword)">search</button>
    </div>
    <table class="table table-bordered table-hover table-striped">
        <thead>
        <tr>
            <th>id</th>
            <th>name</th>
            <th>ctime</th>
            <th>operation</th>
        </tr>
        </thead>
        <tbody>
        <tr v-for="(item,i) in search(keyword)" :key="item.id">
            <td>{{item.id}}</td>
            <td>{{item.name}}</td>
            <td>{{item.ctime|dateFormat}}</td>
            <td>
                <a href="#" class="btn btn-success" @click.prevent="">{{item.operation[0]}}</a>
                <a href="#" class="btn btn-success" @click.prevent="del(i)">{{item.operation[1]}}</a>
            </td>
        </tr>
        </tbody>
    </table>

</div>
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script>
    Vue.filter('dateFormat',function (date) {
        var dy=date.getFullYear();
        var dm=date.getMonth()+1;
        var dd=date.getDate();
        var dh=date.getHours();
        var dm=date.getMinutes();
        var ds=date.getSeconds();
        return `${dy}-${dm}-${dd}  ${dh}:${dm}:${ds}`
    });
    var vm=new Vue({
        el: '#app',
        data: {
            keyword:'',
            id:'',
            name:'',
            list:[{id:1,name:'宝马',ctime:new Date(),operation:['add','delete']},
                {id:2,name:'奔驰',ctime:new Date(),operation:['add','delete']},
                {id:3,name:'大众',ctime:new Date(),operation:['add','delete']}
            ]
        },
        methods:{
            add(){
                var curid=this.id;
                var curname=this.name;
                this.list.push({id:curid,name:curname,ctime:new Date(),operation:['add','delete']});
                this.id='';
                this.name='';
            },
            del(i){
                this.list.splice(i,1);
            },
            search(name){
                var arr=[];
                this.list.forEach((item,i)=>{
                    if(item.name.indexOf(name)!=-1){
                        arr.push(item);
                    }
                });
                return arr
            }
        }
    })
</script>
</body>
</html>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-06-05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Vue教程09(过滤器应用-时间格式字符串格式化)
  在前面我们介绍了vue的综合小案例把前面介绍的一些常用指令我们综合运用了一下,但是还有个小问题,就是现实的创建时间的格式没有处理,虽然我们可以在后台服务处理好后再传递给前端,但是在前端应该也需要能够自主的处理,而我们刚刚介绍了Vue中的过滤器,刚好可以通过Vue的过滤器来解决这个问题,我们来具体看下~
用户4919348
2019/07/18
8380
Vue教程09(过滤器应用-时间格式字符串格式化)
基于vue.js的简单用户管理
功能描述:添加、修改、搜索过滤 效果图: 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <title>简单用户管理</titl
指尖改变世界
2018/08/31
8730
基于vue.js的简单用户管理
02Vue.js快速入门-Vue入门之数据绑定
2.1. 什么是双向绑定? Vue框架很核心的功能就是双向的数据绑定。 双向是指:HTML标签数据 绑定到 Vue对象,另外反方向数据也是绑定的。通俗点说就是,Vue对象的改变会直接影响到HTML的标
老马
2018/01/02
1.8K0
Vue前端的过滤器
有时候我们想要对后台传过来的数据做一些处理,这就需要过滤器了(也可以自定义方法,不过用过滤器更更方便). 过滤器可以用在两个地方:双花括号插值和 v-bind 表达式。过滤器应该被添加在 JavaScript 表达式的尾部,由“管道”符号指示:
名字是乱打的
2021/12/22
5150
Vue02基础语法-插值+过滤器+计算属性+计算属性
示例: 使用计算属性,计算书本的总价定义测试数据,和计算属性,计算属性遍历书本记录,计算总价
天蝎座的程序媛
2022/11/18
1.4K0
【Vue】(2)基础知识 | 过滤器 | 指令
前端修罗场
2023/10/07
2130
vue基础(二)
概念:Vue.js 允许你自定义过滤器,可被用作一些常见的文本格式化。过滤器可以用在两个地方:mustache 插值和 v-bind 表达式。过滤器应该被添加在 JavaScript 表达式的尾部,由“管道”符指示;
不愿意做鱼的小鲸鱼
2022/09/24
6210
vue基础(二)
Vue教程11(自定义指令)
  本文前面已经介绍了好几个系统提供的指令,比如"v-text",“v-bind”,"v-on"等等,本文我们来介绍下自定义指令的实现。
用户4919348
2019/07/18
5930
Vue教程11(自定义指令)
Vue学习之自定义指令「建议收藏」
我们可以看到刷新后搜索框获取到了焦点,说明我们创建的v-focus生效了,但是大家肯定也有很多疑问,我们来一一解释下。
全栈程序员站长
2022/08/04
4370
Vue学习之自定义指令「建议收藏」
Vue教程10(按键修饰符)
  我们希望当’品牌名称’输入完成后自动的调用"add"方法完成添加操作,这时我们可以给输入框绑定一个 键盘松开的事件"keyup"
用户4919348
2019/07/18
3750
Vue教程10(按键修饰符)
17. Vue 常用列表操作实例 - 删除列表数据
在这里已经有了数组list中的id号,那么根据这个id号就可以查询到该数组在数组中的索引index。
Devops海洋的渔夫
2020/03/19
3.7K0
Vue常用特性-过滤器和生命周期
1.过滤器 1.1过滤器的作用是什么? 格式化数据,比如将字符串格式化为首字母大写,将日期格式化为指定的格式等 1.2自定义过滤器 1.3过滤器的使用 1.4局部过滤器 1.5带参数的过滤器 1.6过
梨涡浅笑
2020/12/02
7890
Vue常用特性-过滤器和生命周期
16. Vue 常用列表操作实例 - 增加列表数据
在前端开发中,对于列表的操作是最常见的,例如:增加列表数据、删除列表数据、查询列表的关键字等等。
Devops海洋的渔夫
2020/03/19
1.6K0
VUE参数和过滤器
参数在指令后以冒号指明。例如, v-bind 指令被用来响应地更新 HTML 属性,在这里 href 是参数,告知 v-bind 指令将该元素的 href 属性与表达式 url 的值绑定。
用户9184480
2024/12/19
1240
VUE参数和过滤器
Vue 过滤器(filters)的使用、封装、批量全局定义及常用实例分享
可以用在 双花括号插值和 v-bind 表达式,其中 v-bind 从 2.1.0+ 开始支持。
德顺
2021/05/17
3.2K0
03 . Vue基础之计算属性,过滤器
vue计算属性 /* 复杂逻辑,模板难以维护 1. 基础例子 2. 计算缓存 VS methods - 计算属性是基于他们的依赖进行缓存的. - 计算属性只
iginkgo18
2020/11/24
1.8K0
03 . Vue基础之计算属性,过滤器
一步一步学Vue(二)
  接上篇,在本篇中,我们将要实现如下,功能,编辑和查询,我们当前的todolist程序,和线上其它的demo程序不同,我们会对其进行增删改查的基本操作,之后进行进一步的完善,按照常规的系统使用经验,一般我们新增和编辑都是在模态框中处理,这里我们不会去构建复杂的模态框,只用一个简单的div层来代替,后期接下来的文章中我们会重复造轮子,构建我们自己的轻量级框架(UI库)。
Jerremy
2022/05/09
4930
一步一步学Vue(二)
一步一步学习Vue(十一)
本篇继续学习vuex,还是以实例为主;我们以一步一步学Vue(四)中讲述的例子为基础,对其改造,基于vuex重构一遍,这是原始的代码: todolist.js ; (function () { var list = []; var Todo = (function () { var id = 1; return function (title, desc) { this.title = title; this.d
Jerremy
2018/06/13
7270
Vue学习之按键修饰符
我们希望当’品牌名称’输入完成后自动的调用”add”方法完成添加操作,这时我们可以给输入框绑定一个 键盘松开的事件”keyup”
全栈程序员站长
2022/08/04
2370
Vue学习之按键修饰符
从零开始学 Web 之 Vue.js(二)过滤器,按键修饰符,自定义指令
在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识点,期间也会分享一些好玩的项目。现在就让我们一起进入 Web 前端学习的冒险之旅吧!
Daotin
2018/09/30
1K0
从零开始学 Web 之 Vue.js(二)过滤器,按键修饰符,自定义指令
相关推荐
Vue教程09(过滤器应用-时间格式字符串格式化)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验