vue.js中过滤器的使用教程


Posted in Javascript onJune 08, 2017

前言

大家再使用vue做项目时,查询功能当然必不可少,这就得使用vue强大的filter啦。其实vue内置的两个属性filterBy和orderBy已经能满足部分需求了,但是她更大的的魅力在于自定义filter(之后的文章中会分享),正好我最近做的项目中用到了这个。先给大家看下需求吧。如下图,这是一个通讯录页面,当我们在搜索栏中输入关键字时需要展示相应的员工,同时还得去掉A、B这样的字母索引,并且输入的关键字可以是中文也可以是拼音。

vue.js中过滤器的使用教程   vue.js中过滤器的使用教程

该页面引入搜索栏组件search-bar以及联系人组件user-list,这个搜索栏组件要做的事很简单,因为我们查询的这个参数是动态的,所以只需要在vue上挂载一个v-model即可,然后它相对于这个页面来说是子组件,父子传值就得用props,所以还要用props接收一下,简单写下该组件大家看明白意思即可。

// 组件search-bar
<input type="search" v-model="okr_owner"/>

props: {
 okr_owner: {
  type: String
 }
}
// 通讯录页面
<template>
 <search-bar :okr_owner.sync="key_word"></search-bar>
 <user-list :filter_key="key_word"></user-list>
</template>
// 组件 user-list
<li v-for="single_user in user_list.members | filterBy filter_key in 'user.u_name' 'okr_owner' | orderBy 'okr_owner'">
 props: {
 filter_flag: {
  type: Boolean
 },
 filter_key:{
  type: String
 }
}

然后我们需要在该页面引入这个搜索栏子组件,这里我用到了sync,因为props只能父传子,不能子传父,但是我们这上面引用了两个组件,就是说搜索栏组件中的data要拿到联系人组件中来用,所以需要一个字段(key_word)将两者沟通起来,当我们不写sync时大家可以看到,父的确传值给子组件了,但是子组件中的okr_owner变化之后并没有传给父组件中的key_word,这样联系人组件就接受不到数据源,所以我们需要给他加上sync(双向绑定,父传子和子传父),联系人组件中的filter才可以生效。

vue.js中过滤器的使用教程

vue.js中过滤器的使用教程

在user-list组件中我们需要遍历联系人列表,filter_key用来传给该组件,和搜索栏组件一样,也用props接收一下,并且在里面插入要过滤的内容,

filterBy是返回过滤后的数组,orderBy是排序,前者的使用方法是filterBy 一个key(字段),in xxx 就是指搜索字段,这里需要注意的是in后面跟的必须是obj里面的key,因为我们的需求是同时保证输入汉字或者拼音都能查询,所以in后面跟的是okr_owner和user.u_name(这是vue渲染的数据,我们展示该联系人用的是里面的u_name,okr_owner则为拼音),下面附上数据结构。对于在搜索时如何去掉这些字母索引,我们只需要在通讯录页面中的<user-list>加入一个字段,然后使用watch来监听一下key_word即可。

vue.js中过滤器的使用教程

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
超棒的javascript页面顶部卷动广告效果
Dec 01 Javascript
js封装的textarea操作方法集合(兼容很好)
Nov 16 Javascript
jquery ready函数、css函数及text()使用示例
Sep 27 Javascript
javascript ajax 仿百度分页函数
Oct 29 Javascript
jQuery模拟原生态App上拉刷新下拉加载更多页面及原理
Aug 10 Javascript
Bootstrap 手风琴菜单的实现代码
Jan 20 Javascript
jquery实现简单实用的轮播器
May 23 jQuery
页面间固定参数,通过cookie传值的实现方法
May 31 Javascript
Vue中添加手机验证码组件功能操作方法
Dec 07 Javascript
iview实现select tree树形下拉框的示例代码
Dec 21 Javascript
vue表单中遍历表单操作按钮的显示隐藏示例
Oct 30 Javascript
Vue清除定时器setInterval优化方案分享
Jul 21 Javascript
了解VUE的render函数的使用
Jun 08 #Javascript
Node.js 使用命令行工具检查更新
Jun 08 #Javascript
在vue.js中抽出公共代码的方法示例
Jun 08 #Javascript
Ionic3 UI组件之autocomplete详解
Jun 08 #Javascript
jQuery+ajax实现局部刷新的两种方法
Jun 08 #jQuery
gulp解决跨域的配置文件问题
Jun 08 #Javascript
angular 用拦截器统一处理http请求和响应的方法
Jun 08 #Javascript
You might like
Windows7下PHP开发环境安装配置图文方法
2010/05/20 PHP
PHP中return 和 exit 、break和contiue 区别与用法
2012/04/09 PHP
探讨PHP函数ip2long转换IP时数值太大产生负数的解决方法
2013/06/06 PHP
php更新mysql后获取改变行数的方法
2014/12/25 PHP
php gd等比例缩放压缩图片函数
2016/06/12 PHP
Jquery下的26个实用小技巧(jQuery tips, tricks &amp; solutions)
2010/03/01 Javascript
将Datatable转化成json发送前台实现思路
2013/09/06 Javascript
js数值计算时使用parseInt进行数据类型转换(jquery)
2014/10/07 Javascript
触屏中的JavaScript事件分析
2015/02/06 Javascript
javascript常用正则表达式汇总
2015/07/31 Javascript
JS日期加减,日期运算代码
2015/11/05 Javascript
超赞的jQuery图片滑块动画特效代码汇总
2016/01/25 Javascript
JS给swf传参数的实现方法
2016/09/13 Javascript
BootStrap实现带关闭按钮功能
2017/02/15 Javascript
Vue.js中用webpack合并打包多个组件并实现按需加载
2017/02/17 Javascript
详解使用angular的HttpClient搭配rxjs
2017/09/01 Javascript
babel之配置文件.babelrc入门详解
2018/02/22 Javascript
使用vuex的state状态对象的5种方式
2018/04/19 Javascript
前后端如何实现登录token拦截校验详解
2018/09/03 Javascript
PostgreSQL Node.js实现函数计算方法示例
2019/02/12 Javascript
layer扩展打开/关闭动画的方法
2019/09/23 Javascript
Vue使用vue-recoure + http-proxy-middleware + vuex配合promise实现基本的跨域请求封装
2019/10/21 Javascript
python字典序问题实例
2014/09/26 Python
python实现查询IP地址所在地
2015/03/29 Python
git使用.gitignore设置不生效或不起作用问题的解决方法
2017/06/01 Python
python3爬虫获取html内容及各属性值的方法
2018/12/17 Python
Python 获取 datax 执行结果保存到数据库的方法
2019/07/11 Python
python中利用numpy.array()实现俩个数值列表的对应相加方法
2019/08/26 Python
HTML5调用手机发短信和打电话功能
2020/04/29 HTML / CSS
竞选学生会演讲稿
2014/04/25 职场文书
有子女的离婚协议书怎么写(范本)
2014/09/29 职场文书
公司合并协议书范本
2014/09/30 职场文书
2014幼儿园小班工作总结
2014/11/10 职场文书
租赁协议书
2015/01/27 职场文书
考研英语辞职信
2015/05/13 职场文书
制作能在nginx和IIS中使用的ssl证书
2021/06/21 Servers