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实例教程(19) 使用HoTMetal(7)
Dec 23 Javascript
一个很简单的jquery+xml+ajax的无刷新树结构(无css,后台是c#)
Jun 02 Javascript
DOM Scripting中的图片切换[兼容Firefox]
Jun 12 Javascript
使用jQuery判断IE浏览器版本的代码
Jun 14 Javascript
JavaScript获取某年某月的最后一天附截图
Jun 23 Javascript
Node.js开源应用框架HapiJS介绍
Jan 14 Javascript
javascript中数组的定义及使用实例
Jan 21 Javascript
jQuery实现分章节锚点“回到顶部”动画特效代码
Oct 23 Javascript
vue父组件通过props如何向子组件传递方法详解
Aug 16 Javascript
Vue CLI 3搭建vue+vuex最全分析(推荐)
Sep 27 Javascript
Javascript查看大图功能代码实现
May 07 Javascript
基于vue+element实现全局loading过程详解
Jul 10 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自带ZIP压缩、解压缩类ZipArchiv使用指南
2015/03/03 PHP
PHP程序员的技术成长规划
2016/03/25 PHP
laravel5.0在linux下解决.htaccess无效和去除index.php的问题
2019/10/16 PHP
TP5框架实现自定义分页样式的方法示例
2020/04/05 PHP
window.parent调用父框架时 ie跟火狐不兼容问题
2009/07/30 Javascript
js获取判断上传文件后缀名的示例代码
2014/02/19 Javascript
JQuery 图片滚动轮播示例代码
2014/03/24 Javascript
javascript根据时间生成m位随机数最大13位
2014/10/30 Javascript
AngularJS学习笔记之ng-options指令
2015/06/16 Javascript
关于js里的this关键字的理解
2015/08/17 Javascript
JavaScript通过HTML的class来获取HTML元素的方法总结
2016/05/24 Javascript
JavaScript每天必学之数组和对象部分
2016/09/17 Javascript
JavaScript中定时控制Throttle、Debounce和Immediate详解
2016/11/17 Javascript
关于foreach循环中遇到的问题小结
2017/05/08 Javascript
详解webpack 多入口配置
2017/06/16 Javascript
React 组件转 Vue 组件的命令写法
2018/02/28 Javascript
JS实现自定义弹窗功能
2018/08/08 Javascript
Vue.js特性Scoped Slots的浅析
2019/02/20 Javascript
TypeScript中使用getElementXXX()的示例代码
2019/09/12 Javascript
vue项目接口域名动态获取操作
2020/08/13 Javascript
如何基于viewport vm适配移动端页面
2020/11/13 Javascript
使用优化器来提升Python程序的执行效率的教程
2015/04/02 Python
Python实现的特征提取操作示例
2018/12/03 Python
利用Python实现微信找房机器人实例教程
2019/03/10 Python
Python redis操作实例分析【连接、管道、发布和订阅等】
2019/05/16 Python
python如何解析配置文件并应用到项目中
2019/06/27 Python
解决Mac下使用python的坑
2019/08/13 Python
django数据模型(Model)的字段类型解析
2019/12/25 Python
Django模板之基本的 for 循环 和 List内容的显示方式
2020/03/31 Python
解决pip安装的第三方包在PyCharm无法导入的问题
2020/10/15 Python
python switch 实现多分支选择功能
2020/12/21 Python
Book Depository欧盟:一家领先的国际图书零售商
2019/05/21 全球购物
财务会计专业推荐信
2013/11/30 职场文书
八年级音乐教学反思
2014/01/09 职场文书
银行会计主管岗位职责
2014/10/01 职场文书
2019年最新借条范本!
2019/07/08 职场文书