vue实现搜索功能


Posted in Javascript onMay 28, 2019

本文实例为大家分享了vue实现搜索功能的具体代码,供大家参考,具体内容如下

methods (要有一定的触发条件才能执行,如点击事件)

<template>
 <div class="safetyInfo">
 <input type="text" name="" id="" placeholder="搜索" v-model="search"/> 
 <button @click="btn">搜索</button>
 <ul v-for="list in searchData">
 <li>
  <span>{{list.name}}</span>
  <span>{{list.date}}</span>
  <span>{{list.depart}}</span>
 </li>
 </ul>
 </div>
</template>
 
<script>
export default {
 name: 'HelloWorld',
 data () {
 return {
  search:'',
  searchData: '',
 products:[
  //假数据
  {name:"数据1",date:'2018-01-04',depart:'泸化工1'},
  {name:"数据2",date:'2018-01-25',depart:'泸化工2'},
  {name:"数据3",date:'2018-02-10',depart:'泸化工3'},
  {name:"数据4",date:'2018-03-04',depart:'泸化工4'},
  {name:"数据5",date:'2018-05-24',depart:'泸化工5'},
  {name:"数据6",date:'2018-10-29',depart:'泸化工6'}
  ]
 }
 },
 methods:{
 btn:function(){
 
 var search = this.search;
 if (search) {
 this.searchData = this.products.filter(function(product) {
  console.log(product)
 return Object.keys(product).some(function(key) {
  console.log(key)
  return String(product[key]).toLowerCase().indexOf(search) > -1
 })
 })
 }
 
 }
 }
}
</script>

computed (在HTML DOM加载后马上执行的,如赋值):

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
 
<title>Document</title>
<script src="https://unpkg.com/vue/dist/vue.js"></script>
</head>
<body>
 
<div id="app">
<input v-model='search' />
<ul v-for="item in searchData ">
<li>{{item.name}},价格:¥{{item.price}}</li>
</ul>
</div>
 
 
<script>
var vm = new Vue({
el: '#app',
data: {
search: '',
products: [{
name: '苹果',
price: 25,
category: "水果"
}, {
name: '香蕉',
price: 15,
category: "水果"
}, {
name: '雪梨',
price: 65,
category: "水果"
}, {
name: '宝马',
price: 2500,
category: "汽车"
}, {
name: '奔驰',
price: 10025,
category: "汽车"
}, {
name: '柑橘',
price: 15,
category: "水果"
}, {
name: '奥迪',
price: 25,
category: "汽车"
}]
},
computed: {
searchData: function() {
var search = this.search;
 
if (search) {
return this.products.filter(function(product) {
return Object.keys(product).some(function(key) {
return String(product[key]).toLowerCase().indexOf(search) > -1
})
})
}
 
return this.products;
}
}
})
</script>
 
 
</body>
</html>

注:some()为数组中的每个元素执行一次callback函数,直到它找到一个返回值为可以转化为布尔值true的值,此时some()方法将立刻返回true,否则立刻返回false 

by the way:

watch 它用于观察Vue实例上的数据变动。对应一个对象,键是观察表达式,值是对应回调。值也可以是方法名,或者是对象,包含选项。

所以他们的执行顺序为:默认加载的时候先computed再watch,不执行methods;等触发某一事件后,则是:先methods再watch。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript UrlDecode函数代码
Jan 09 Javascript
jquery 弹出层注册页面等(asp.net后台)
Jun 17 Javascript
基于jquery的横向滚动条(滑动条)
Feb 24 Javascript
js获取下拉列表的值和元素个数示例
May 07 Javascript
AngularJS入门教程(零):引导程序
Dec 06 Javascript
使用mouse事件实现简单的鼠标经过特效
Jan 30 Javascript
jQuery插件jFade实现鼠标经过的图片高亮其它变暗
Mar 14 Javascript
浅析JavaScript动画
Jun 10 Javascript
Javascript 高阶函数使用介绍
Jun 15 Javascript
angular使用post、get向后台传参的问题实例
May 27 Javascript
纯js代码生成可搜索选择下拉列表的实例
Jan 11 Javascript
在Vue中使用this.$store或者是$route一直报错的解决
Nov 08 Javascript
Bootstrap 时间日历插件bootstrap-datetimepicker配置与应用小结
May 28 #Javascript
如何实现双向绑定mvvm的原理实现
May 28 #Javascript
vue实现带复选框的树形菜单
May 27 #Javascript
vue实现按需加载组件及异步组件功能
May 27 #Javascript
Vue实现导航栏点击当前标签变色功能
Aug 19 #Javascript
原生js实现each方法实例代码详解
May 27 #Javascript
深入学习JavaScript中的bom
May 27 #Javascript
You might like
PHPnow安装服务[apache_pn]失败的问题的解决方法
2010/09/10 PHP
JavaScript 替换Html标签实现代码
2009/10/14 Javascript
JavaScript代码复用模式实例分析
2012/12/02 Javascript
js 获取和设置css3 属性值的实现方法
2013/05/06 Javascript
js简单实现HTML标签Select联动带跳转
2013/10/23 Javascript
纯js和css实现渐变色包括静态渐变和动态渐变
2014/05/29 Javascript
Jquery 实现grid绑定模板
2015/01/28 Javascript
JavaScript实现同步于本地时间的动态时间显示方法
2015/02/02 Javascript
javascript实现淘宝幻灯片广告展示效果
2015/04/27 Javascript
HTML5使用DeviceOrientation实现摇一摇功能
2015/06/05 Javascript
JS实现HTML表格排序功能
2016/08/05 Javascript
Javascript使用uploadify来实现多文件上传
2016/11/16 Javascript
Vue如何引入远程JS文件
2017/04/20 Javascript
vue.js todolist实现代码
2017/10/29 Javascript
详解JS数值Number类型
2018/02/07 Javascript
vue实现歌手列表字母排序下拉滚动条侧栏排序实时更新
2019/05/14 Javascript
原生js添加一个或多个类名的方法分析
2019/07/30 Javascript
Nodejs技巧之Exceljs表格操作用法示例
2019/11/06 NodeJs
在vue中利用v-html按分号将文本换行的例子
2019/11/14 Javascript
基于NodeJS开发钉钉回调接口实现AES-CBC加解密
2020/08/20 NodeJs
python实现的文件同步服务器实例
2015/06/02 Python
Django与JS交互的示例代码
2017/08/23 Python
TensorFlow神经网络优化策略学习
2018/03/09 Python
Python3.4学习笔记之列表、数组操作示例
2019/03/01 Python
python输出带颜色字体实例方法
2019/09/01 Python
python 使用opencv 把视频分割成图片示例
2019/12/12 Python
pycharm下配置pyqt5的教程(anaconda虚拟环境下+tensorflow)
2020/03/25 Python
在pycharm中创建django项目的示例代码
2020/05/28 Python
html5跨域通讯之postMessage的用法总结
2013/11/07 HTML / CSS
加拿大在线眼镜零售商:SmartBuyGlasses加拿大
2019/05/25 全球购物
对祖国的寄语大全
2014/04/11 职场文书
2014年国庆节演讲稿
2014/09/19 职场文书
党支部鉴定意见
2015/06/02 职场文书
民间借贷纠纷起诉书
2015/08/03 职场文书
小学三年级语文教学反思
2016/03/03 职场文书
python中%格式表达式实例用法
2021/06/18 Python