vue学习笔记(一) ---- vue指令(过滤器)
一、什么是过滤器
官方文档: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>
来吧展示:

使用过滤器之后:
- 使用双括号的方式去添加过滤器
<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)
})
- 方式三:
直接在参数后面传入数据
<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指令(过滤器)的更多相关文章
- 【Vue学习笔记】—— vue的基础语法 { }
学习笔记 作者:oMing vue v-on: 简称 @ <div id='app'> <button v-on:click='Show1'> </button> ...
- vue学习笔记(二)vue的生命周期和钩子函数
前言 通过上一章的学习,我们已经初步的了解了vue到底是什么东西,可以干什么,而这一篇博客主要介绍vue的生命周期和它常用的钩子函数,如果有学过java的园友可能有接触到在学习servlet的时候学过 ...
- vue学习笔记:vue的认识与特点与获取
Vue了解 Vue:读作 view Vue是一个渐进式框架 与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计. Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整 ...
- Vue学习笔记之Vue指令系统介绍
所谓指令系统,大家可以联想咱们的cmd命令行工具,只要我输入一条正确的指令,系统就开始干活了. 在vue中,指令系统,设置一些命令之后,来操作我们的数据属性,并展示到我们的DOM上. OK,接下来我们 ...
- Vue学习笔记【12】——过滤器
概念:Vue.js 允许你自定义过滤器,可被用作一些常见的文本格式化.过滤器可以用在两个地方:mustache 插值和 v-bind 表达式.过滤器应该被添加在 JavaScript 表达式的尾部,由 ...
- vue学习笔记—bootstrap+vue用户管理
vue,读音view,简单易用的前端框架.特点如下: 1.一个mvvm的前端框架,内部做好了html中dom对象和后台用js语言定义的变量的双向绑定 2.中国人尤雨溪维护的个人项目,中文资料多,和go ...
- Vue学习笔记之Vue知识点补充
0x00 修饰符 .lazy 在默认情况下,v-model 在每次 input 事件触发后将输入框的值与数据进行同步 .你可以添加 lazy 修饰符,从而转变为使用 change 事件进行同步: &l ...
- Vue学习笔记之Vue学习前的准备工作
0x00 起步 1.扎实的HTML/CSS/Javascript基本功,这是前置条件. 2.不要用任何的构建项目工具,只用最简单的<script>,把教程里的例子模仿一遍,理解用法.不推荐 ...
- VUE学习笔记之vue cli 构建项目
一.环境搭建: 1.安装node.js 从node.js官网下载并安装node,安装过程很简单,一路"下一步"就可以了.安装完成之后,打开命令行工具(win+r,然后输入cmd), ...
- Vue学习笔记之Vue组件
0x00 前言 vue的核心基础就是组件的使用,玩好了组件才能将前面学的基础更好的运用起来.组件的使用更使我们的项目解耦合.更加符合vue的设计思想MVVM. 那接下来就跟我看一下如何在一个Vue实例 ...
随机推荐
- python枚举类型 Enum
在python中枚举是一种类(Enum) 枚举类中不能存在相同的标签名 枚举是可迭代的 例: from enum import Enum class Vip(Enum): MONDAY = 0 TUE ...
- VBA工程设置密码
VBA 工程设置密码 Alt + F11,进入程序界面: 工具---> VBAProject属性---> 保护---> 查看时锁定工程前打勾,并在下面的密码区输入密码.
- Java8新特性:函数式编程
1. 概述 函数式编程学习目的: 能够看懂公司里的代码 大数据量下处理集合效率更高 代码可读性高 消灭嵌套地狱 函数式编程思想: 面向对象思想需要关注用什么对象完成什么事情.而函数式编程思想就类似于我 ...
- 这是不是你想要了解SQL的艺术,基础语法等等
一.基础sql语句: 模块定义 基础语句 基础功能 数据定义 create table 创建数据库表 drop table 删除数据表 alter table 修改表结构 create view 创建 ...
- MySQL数据库的性能分析 ---图书《软件性能测试分析与调优实践之路》-手稿节选
1 .MySQL数据库的性能监控 1.1.如何查看MySQL数据库的连接数 连接数是指用户已经创建多少个连接,也就是MySQL中通过执行 SHOW PROCESSLIST命令输出结果中运行着的线程 ...
- 2022-11-07 Acwing每日一题
本系列所有题目均为Acwing课的内容,发表博客既是为了学习总结,加深自己的印象,同时也是为了以后回过头来看时,不会感叹虚度光阴罢了,因此如果出现错误,欢迎大家能够指出错误,我会认真改正的.同时也希望 ...
- Go语言核心36讲39
在上一篇文章中,我介绍了Go语言与Unicode编码规范.UTF-8编码格式的渊源及运用. Go语言不但拥有可以独立代表Unicode字符的类型rune,而且还有可以对字符串值进行Unicode字符拆 ...
- 使用位运算优化 N 皇后问题
使用位运算优化 N 皇后问题 作者:Grey 原文地址: 博客园:使用位运算优化 N 皇后问题 CSDN:使用位运算优化 N 皇后问题 问题描述 N 皇后问题是指在 n * n 的棋盘上要摆 n 个皇 ...
- 交叉编译GDB
PC主机安装必要软件 sudo apt-get install bison flex expect-dev build-essential m4 autoconf automake texi2html ...
- 关于解决windows安装gcc g++环境 mingw失败
前言 这几天学习c++,为了详细了解编译过程我没有安装vs全家桶,当然使用命令行是最好的方法. 但是为了解决这个网络问题折腾了我很久,经过我研究发现,其实就是到固定网站下载几个压缩格式的文件,然后解压 ...