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 相关文章推荐
JS 对象介绍
Jan 20 Javascript
IE浏览器中图片onload事件无效的解决方法
Apr 29 Javascript
jquery实现下拉框功能效果【实例代码】
May 06 Javascript
Bootstrap编写一个兼容主流浏览器的受众门户式风格页面
Jul 01 Javascript
Angular实现跨域(搜索框的下拉列表)
Feb 16 Javascript
vue模板语法-插值详解
Mar 06 Javascript
Vue iview-admin框架二级菜单改为三级菜单的方法
Jul 03 Javascript
微信小程序云开发实现数据添加、查询和分页
May 17 Javascript
在vue-cli3中使用axios获取本地json操作
Jul 30 Javascript
js实现表格单列按字母排序
Aug 12 Javascript
解决vue使用vant轮播组件swipe + flex时文字抖动问题
Jan 07 Vue.js
浅谈Vue开发人员的7个最好的VSCode扩展
Jan 20 Vue.js
了解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 中的面向对象编程:通向大型 PHP 工程的办法
2006/12/03 PHP
新手配置 PHP 调试环境(IIS+PHP+MYSQL)
2007/01/10 PHP
关于PHP堆栈与列队的学习
2013/06/21 PHP
PHP邮件发送类PHPMailer用法实例详解
2014/09/22 PHP
javascript背投广告代码的完善
2008/04/08 Javascript
Prototype 工具函数 学习
2009/07/23 Javascript
jquery键盘事件使用介绍
2011/11/01 Javascript
ExtJS4利根据登录后不同的角色分配不同的树形菜单
2014/05/02 Javascript
javascript闭包的理解
2015/04/01 Javascript
jQuery插件开发精品教程让你的jQuery提升一个台阶
2016/01/27 Javascript
Jquery与Bootstrap实现后台管理页面增删改查功能示例
2017/01/22 Javascript
判断横屏竖屏(三种)
2017/02/13 Javascript
react实现pure render时bind(this)隐患需注意!
2017/03/09 Javascript
JavaScript中关于class的调用方法
2017/11/28 Javascript
详解js类型判断
2018/05/22 Javascript
D3.js(v3)+react 实现带坐标与比例尺的柱形图 (V3版本)
2019/05/09 Javascript
jQuery实现弹出层效果
2019/12/10 jQuery
前端深入理解Typescript泛型概念
2020/03/09 Javascript
[01:08:32]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第二场 1月18日
2021/03/11 DOTA
python创建列表和向列表添加元素的实现方法
2017/12/25 Python
使用C++扩展Python的功能详解
2018/01/12 Python
Python基于WordCloud制作词云图
2019/11/29 Python
python 用opencv实现霍夫线变换
2020/11/27 Python
python实现视频压缩功能
2020/12/18 Python
巴黎欧莱雅法国官网:L’Oreal Paris
2019/04/30 全球购物
New delete 与malloc free 的联系与区别
2013/02/04 面试题
国际商务系学生个人的自我评价
2013/11/26 职场文书
大学生校园创业计划书
2014/02/08 职场文书
一夜的工作教学反思
2014/02/08 职场文书
文明风采获奖感言
2014/02/18 职场文书
社会实践评语
2014/04/28 职场文书
计算机专业毕业生求职信
2014/04/30 职场文书
入党积极分子对十八届四中全会期盼的思想汇报
2014/10/17 职场文书
社区服务理念口号
2015/12/25 职场文书
Python如何配置环境变量详解
2021/05/18 Python
用Python selenium实现淘宝抢单机器人
2021/06/18 Python