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 设计模式学习 Singleton
Jul 27 Javascript
javascript setTimeout()传递函数参数(包括传递对象参数)
Apr 07 Javascript
JavaScript 比较时间大小的代码
Apr 24 Javascript
JavaScript在IE和Firefox浏览器下的7个差异兼容写法小结
Jun 18 Javascript
Firefox中autocomplete=&quot;off&quot; 设置不起作用Bug的解决方法
Mar 25 Javascript
如何在JavaScript中实现私有属性的写类方式(二)
Dec 04 Javascript
判断复选框是否被选中的两种方法
Jun 04 Javascript
jquery实现的V字形显示效果代码
Oct 27 Javascript
JavaScript中如何使用cookie实现记住密码功能及cookie相关函数介绍
Nov 10 Javascript
vue中v-for加载本地静态图片方法
Mar 03 Javascript
JavaScript中的this基本问题实例小结
Mar 09 Javascript
js在HTML的三种引用方式详解
Aug 29 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
比较好用的PHP防注入漏洞过滤函数代码
2012/04/11 PHP
php递归删除指定文件夹的方法小结
2015/04/20 PHP
php图像处理类实例
2015/07/28 PHP
PHP按符号截取字符串的指定部分的实现方法
2018/09/10 PHP
浅谈php://filter的妙用
2019/03/05 PHP
在Javascript中 声明时用&quot;var&quot;与不用&quot;var&quot;的区别
2013/04/15 Javascript
js与jQuery 获取父窗、子窗的iframe
2013/12/20 Javascript
js动态往表格的td中添加图片并注册事件
2014/06/12 Javascript
jquery仅用6行代码实现滑动门效果
2015/09/07 Javascript
JS实现的加减乘除四则运算计算器示例
2017/08/09 Javascript
JS使用正则表达式找出最长连续子串长度
2017/10/26 Javascript
vue 项目如何引入微信sdk接口的方法
2017/12/18 Javascript
全站最详细的Vuex教程
2018/04/13 Javascript
vue 组件的封装之基于axios的ajax请求方法
2018/08/11 Javascript
微信小程序实现圆形进度条动画
2020/11/18 Javascript
小程序input数据双向绑定实现方法
2019/10/17 Javascript
python操作摄像头截图实现远程监控的例子
2014/03/25 Python
教你如何在Django 1.6中正确使用 Signal
2014/06/22 Python
浅谈python字符串方法的简单使用
2016/07/18 Python
Python绘制七段数码管实例代码
2017/12/20 Python
python判断一个集合是否为另一个集合的子集方法
2018/05/04 Python
使用python存储网页上的图片实例
2018/05/22 Python
Jupyter notebook远程访问服务器的方法
2018/05/24 Python
pytorch索引查找 index_select的例子
2019/08/18 Python
Python with标签使用方法解析
2020/01/17 Python
python中复数的共轭复数知识点总结
2020/12/06 Python
Selenium+BeautifulSoup+json获取Script标签内的json数据
2020/12/07 Python
python 6种方法实现单例模式
2020/12/15 Python
使用CSS3实现一个3D相册效果实例
2016/12/03 HTML / CSS
浅谈HTML5 defer和async的区别
2016/06/07 HTML / CSS
白酒业务员岗位职责
2013/12/27 职场文书
学生偷窃检讨书
2014/09/25 职场文书
警察群众路线整改措施
2014/09/26 职场文书
2016形势与政策学习心得体会
2016/01/12 职场文书
实习报告范文之电话客服岗位
2019/07/26 职场文书
Python初学者必备的文件读写指南
2021/06/23 Python