一、什么是过滤器

官方文档:https://cn.vuejs.org/v2/guide/filters.html

二、过滤器的使用

没有使用过滤器之前:

<div id="app">
<table>
<thead>
<tr>
<th>排名</th>
<th>菜名</th>
</tr>
</thead>
<tbody>
<tr v-for="item in list" :key="item.id">
<td>{{ item.id }}</td>
<td>{{ item.name}}</td>
</tr>
</tbody>
</table>
</div>
<script>
var vm = new Vue({
el: '#app',
data: {
list: [
{ id: 1, name: '黄焖鸡' },
{ id: 2, name: '烤鱼'},
{ id: 3, name: '鸭血粉丝'},
{ id: 4, name: '大碗米线' },
{ id: 5, name: '螺蛳粉' },
{ id: 6, name: '鱼香肉丝'},
]
}
})
</script>

来吧展示:

使用过滤器之后:

  1. 使用双括号的方式去添加过滤器
 <tr v-for="item in list" :key="item.id">
<td>{{ item.id }}</td>
<td>{{ item.name | filterData }}</td>
</tr>
Vue.filter('filterData',function () {
console.log('过滤器被调用了。。。')
return '螺蛳粉 my love~~'
})
//在vm实例对象之前去定义过滤器
var vm = new Vue({
.........
})

来吧展示:

注意:过滤器的处理函数中的第一个参数已经规定死了,就是管道符前面的数,这里也就是item.name

如下:

Vue.filter('filterData',function (data) {
console.log('过滤器被调用了。。。')
return data+ '~~~~~'
})

三、给过滤器传递参数

 <td>{{ item.name | filterData('xxxxxxx')}}</td>
  Vue.filter('filterData',function (data,str) {
return data + str
})

来吧展示:

四、使用多个过滤器

<td>{{ item.name | filterData | addstr}}</td>
 Vue.filter('filterData',function (data) {
return data+ '~~~~~'
})
Vue.filter('addstr',function (data) {
return data + '哈哈哈哈哈'
})

来吧展示:

五、全局过滤器的栗子

<div id="app">
<p>{{msg}}</p>
</div>
var vm = new Vue({
el: '#app',
data: {
msg: '鸭血粉丝里面放有:鸭血,鸭肠,鸭肝'
},
methods: {}
});



使用全局过滤器,将"鸭"改成"猪"

方式一:

 <p>{{msg | filtermsg}}</p>
 Vue.filter('filtermsg',function (data) {
// return data.replace('a','x')
// replace只能替换掉第一项
// 第一个参数传入正则,可以全局匹配
return data.replace(/鸭/g,'猪')
})



2. 方式二:

在过滤器中传递参数

 <p>{{msg | filtermsg('猪')}}</p>
Vue.filter('filtermsg',function (data,str) {
return data.replace(/鸭/g,str)
})
  1. 方式三:

    直接在参数后面传入数据
<p>{{msg | filtermsg}}</p>
Vue.filter('filtermsg',function (data,str='猪') {
return data.replace(/鸭/g,str)
})

如果定义了另外一个vm2实例

那么也可以使用全局过滤器

<body>

<div id="app">
<p>{{msg | filtermsg}}</p>
</div>
<hr> <div id="app2">
<p>{{msg | filtermsg }}</p>
</div> <script>
Vue.filter('filtermsg',function (data,str='猪') {
return data.replace(/鸭/g,str)
}) var vm = new Vue({
el: '#app',
data: {
msg: '鸭血粉丝里面放有:鸭血,鸭肠,鸭肝'
},
methods: {}
});
var vm2 = new Vue({
el:'#app2',
data: {
msg: '哇哦~是鸭血粉丝'
},
methods: {}
});
</script>
</body>

六、私有过滤器

<div id="app2">
<p>{{msg | filtermsg | addStr}}</p>
</div>
var vm2 = new Vue({
el:'#app2',
data: {
msg: '哇哦~是鸭血粉丝'
},
methods: {},
filters:{
// addStr:function (data) {
addStr(data){
return data + '~~~~~~wao好好恰'
}
} });

注意:

私有过滤器只能vm2实例的容器才可以使用,vm实例的区域不能使用

如果全局过滤器与私有过滤器重名的话,会以就近原则,执行私有的过滤器

<div id="app2">
<p>{{msg | filtermsg | addStr}}</p>
</div>
Vue.filter('filtermsg',function (data,str='猪') {
return data.replace(/鸭/g,str)
})
var vm2 = new Vue({
el:'#app2',
data: {
msg: '哇哦~是鸭血粉丝'
},
methods: {},
filters:{
// addStr:function (data) {
addStr(data){
return data + '~~~~~~wao好好恰'
},
filtermsg:function (data) {
// return data.replace(/鸭/g,str)
return data + '111111'
}
}
});

vue学习笔记(一) ---- vue指令(过滤器)的更多相关文章

  1. 【Vue学习笔记】—— vue的基础语法 { }

    学习笔记 作者:oMing vue v-on: 简称 @ <div id='app'> <button v-on:click='Show1'> </button> ...

  2. vue学习笔记(二)vue的生命周期和钩子函数

    前言 通过上一章的学习,我们已经初步的了解了vue到底是什么东西,可以干什么,而这一篇博客主要介绍vue的生命周期和它常用的钩子函数,如果有学过java的园友可能有接触到在学习servlet的时候学过 ...

  3. vue学习笔记:vue的认识与特点与获取

    Vue了解 Vue:读作 view Vue是一个渐进式框架 与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计. Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整 ...

  4. Vue学习笔记之Vue指令系统介绍

    所谓指令系统,大家可以联想咱们的cmd命令行工具,只要我输入一条正确的指令,系统就开始干活了. 在vue中,指令系统,设置一些命令之后,来操作我们的数据属性,并展示到我们的DOM上. OK,接下来我们 ...

  5. Vue学习笔记【12】——过滤器

    概念:Vue.js 允许你自定义过滤器,可被用作一些常见的文本格式化.过滤器可以用在两个地方:mustache 插值和 v-bind 表达式.过滤器应该被添加在 JavaScript 表达式的尾部,由 ...

  6. vue学习笔记—bootstrap+vue用户管理

    vue,读音view,简单易用的前端框架.特点如下: 1.一个mvvm的前端框架,内部做好了html中dom对象和后台用js语言定义的变量的双向绑定 2.中国人尤雨溪维护的个人项目,中文资料多,和go ...

  7. Vue学习笔记之Vue知识点补充

    0x00 修饰符 .lazy 在默认情况下,v-model 在每次 input 事件触发后将输入框的值与数据进行同步 .你可以添加 lazy 修饰符,从而转变为使用 change 事件进行同步: &l ...

  8. Vue学习笔记之Vue学习前的准备工作

    0x00 起步 1.扎实的HTML/CSS/Javascript基本功,这是前置条件. 2.不要用任何的构建项目工具,只用最简单的<script>,把教程里的例子模仿一遍,理解用法.不推荐 ...

  9. VUE学习笔记之vue cli 构建项目

    一.环境搭建: 1.安装node.js 从node.js官网下载并安装node,安装过程很简单,一路"下一步"就可以了.安装完成之后,打开命令行工具(win+r,然后输入cmd), ...

  10. Vue学习笔记之Vue组件

    0x00 前言 vue的核心基础就是组件的使用,玩好了组件才能将前面学的基础更好的运用起来.组件的使用更使我们的项目解耦合.更加符合vue的设计思想MVVM. 那接下来就跟我看一下如何在一个Vue实例 ...

随机推荐

  1. Nginx重写功能(rewrite与location)

    一.常用的Nginx 正则表达式 二.访问路由location 2.1location的分类 location 大致可以分为三类: 精准匹配:location = / {} 一般匹配:location ...

  2. CentOS下一些软件的安装

    Git # 参数 -y 表示yes,不用询问直接安装 yum -y install git # 第一次安装需要一些配置 git config --global user.name "Your ...

  3. hwlog--logger.go

    // Copyright(C) 2021. Huawei Technologies Co.,Ltd. All rights reserved.// Package hwlog provides the ...

  4. Destination folder must be accessible

    问题 Ecplise拖入文件夹项目时提示错误:Destination folder must be accessible 解决 导入的时候包不能直接拖入,要使用import导入,选择File-> ...

  5. vue 3.0 常用API 的介绍

    vue3.0 生命周期 写法一 和vue2.x 一致 区别在于(beforeUnmount.unmount)名称不一样 写法二 在setup 中使用, 需要引用 如: import { onBefor ...

  6. 【每日一题】【与运算判断奇偶】【list的重载前后插入】2021年11月25日-103. 二叉树的锯齿形层序遍历

    给定一个二叉树,返回其节点值的锯齿形层序遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行). 例如:给定二叉树 [3,9,20,null,null,15,7], 来源:力扣 ...

  7. Python matplotlib 学习——建立画布和坐标系

    #导入包import matplotlib.pyplot as plt #让图表在jupyter展示出来%matplotlib inline#解决中文乱码问题plt.rcParams["fo ...

  8. tcp/udp 协议特性和三次握手

    一.TCP/UDP协议特性1)TCP特性:工作在传输层.建立连接.可靠的.错误检查 2)UDP特性:工作在传输层.不需要连接.不可靠的.有限的错误检查.传输性能高 2.控制位及确认号解释 控制位:由6 ...

  9. keepalived 主备使用

    keepalived 主备使用 本篇主要介绍一下 keepalived 的基本的 主备使用 1.概述 什么是 keepalived呢,它是一个集群管理中 保证集群高可用的软件,防止单点故障,keepa ...

  10. 分布式日志:Exceptionless的安装与部署

    安装步骤 首先exceptionless依赖elasticsearch,而elasticsearch需要java环境,所以先安装jdk jdk下载地址:https://www.oracle.com/t ...