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中的有名函数和无名函数
Oct 17 Javascript
ExtJS 2.0实用简明教程 之Ext类库简介
Apr 29 Javascript
javascript利用初始化数据装配模版的实现代码
Nov 17 Javascript
javascript实现图片循环渐显播放的方法
Feb 24 Javascript
JavaScript数组各种常见用法实例分析
Aug 04 Javascript
jQuery移动端图片上传组件
Jun 12 Javascript
微信小程序 rich-text的使用方法
Aug 04 Javascript
判断滚动条滑到底部触发事件(实例讲解)
Nov 15 Javascript
Vue中的验证登录状态的实现方法
Mar 09 Javascript
Js和VUE实现跑马灯效果
May 25 Javascript
jquery实现鼠标悬浮弹出气泡提示框
Dec 23 jQuery
mapboxgl实现带箭头轨迹线的代码
Jan 04 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 strtok()函数的优点分析
2010/03/02 PHP
php面向对象的用户登录身份验证
2017/06/08 PHP
js 实现打印网页中定义的部分内容的代码
2010/04/01 Javascript
js与jquery获取父级元素,子级元素,兄弟元素的实现方法
2014/01/09 Javascript
浅谈jQuery异步对象(XMLHttpRequest)
2014/11/17 Javascript
JS+CSS实现自动切换的网页滑动门菜单效果代码
2015/09/14 Javascript
jquery zTree异步加载简单实例讲解
2016/02/25 Javascript
js 获取范围内的随机数实例代码
2016/08/02 Javascript
总结javascript中的六种迭代器
2016/08/16 Javascript
关于不同页面之间实现参数传递的几种方式讨论
2017/02/13 Javascript
json的结构与遍历方法实例分析
2017/04/25 Javascript
Vue的MVVM实现方法
2017/08/16 Javascript
浅谈Koa2框架利用CORS完成跨域ajax请求
2018/03/06 Javascript
Vue实现todolist删除功能
2018/06/26 Javascript
在Linux下调试Python代码的各种方法
2015/04/17 Python
Python常用的内置序列结构(列表、元组、字典)学习笔记
2016/07/08 Python
浅谈python socket函数中,send与sendall的区别与使用方法
2017/05/09 Python
Python SVM(支持向量机)实现方法完整示例
2018/06/19 Python
浅谈python之新式类
2018/08/12 Python
python中使用 xlwt 操作excel的常见方法与问题
2019/01/13 Python
ML神器:sklearn的快速使用及入门
2019/07/11 Python
Windows下Anaconda和PyCharm的安装与使用详解
2020/04/23 Python
Python定义一个函数的方法
2020/06/15 Python
序列化Python对象的方法
2020/08/01 Python
学生发电厂实习自我鉴定
2013/09/22 职场文书
《路旁的橡树》教学反思
2014/04/07 职场文书
卖车协议书
2014/04/21 职场文书
优秀的个人求职信范文
2014/05/09 职场文书
签约仪式策划方案
2014/06/02 职场文书
学校四风对照检查材料
2014/08/28 职场文书
党的群众路线教育实践活动个人对照检查材料(教师)
2014/11/04 职场文书
房地产销售主管岗位职责
2015/02/13 职场文书
党员评议自我评价
2015/03/03 职场文书
2015年母亲节寄语
2015/03/23 职场文书
2019年鼓励无偿献血倡议书
2019/09/17 职场文书
jQuery ajax - getScript() 方法和getJSON方法
2021/05/14 jQuery