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 星级评分效果(手写)
Dec 24 Javascript
15条JavaScript最佳实践小结
Aug 09 Javascript
jsPDF导出pdf示例
May 02 Javascript
基于javascript实现判断移动终端浏览器版本信息
Dec 09 Javascript
jquery实用技巧之输入框提示语句
Jul 28 Javascript
详解如何在vue中使用sass
Jun 21 Javascript
详解AngularJS跨页面传值(ui-router)
Aug 23 Javascript
Bootstrap栅格系统的使用详解
Oct 30 Javascript
Bootstrap popover 实现鼠标移入移除显示隐藏功能方法
Jan 24 Javascript
vuejs中监听窗口关闭和窗口刷新事件的方法
Sep 21 Javascript
如何解决webpack-dev-server代理常切换问题
Jan 09 Javascript
JS正则表达式验证端口范围(0-65535)
Jan 06 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
DC动画电影《黑暗正义联盟》曝预告 5月5日上线数字平台
2020/04/09 欧美动漫
利用PHP和AJAX创建RSS聚合器的代码
2007/03/13 PHP
php+ajax实现无刷新的新闻留言系统
2020/12/21 PHP
PHP实现找出有序数组中绝对值最小的数算法分析
2017/08/07 PHP
javascript 读取图片文件的大小
2009/06/25 Javascript
使用jquery与图片美化checkbox和radio控件的代码(打包下载)
2010/11/11 Javascript
javascript 单例/单体模式(Singleton)
2011/04/07 Javascript
解析Javascript中难以理解的11个问题
2013/12/09 Javascript
jquery通过ajax加载一段文本内容的方法
2015/01/15 Javascript
JavaScript的jQuery库中function的存在和参数问题
2015/08/13 Javascript
js获取所有checkbox的值的简单实例
2016/05/30 Javascript
jquery validate表单验证插件
2016/09/06 Javascript
学习使用jQuery表单验证插件和日历插件
2017/02/13 Javascript
简单谈谈vue的过渡动画(推荐)
2017/10/11 Javascript
使用vuex的state状态对象的5种方式
2018/04/19 Javascript
详解mpvue中小程序自定义导航组件开发指南
2019/02/11 Javascript
vue在自定义组件中使用v-model进行数据绑定的方法
2019/03/25 Javascript
微信小程序实现搜索功能并跳转搜索结果页面
2019/05/18 Javascript
nodejs二进制与Buffer的介绍与使用
2019/07/11 NodeJs
详解钉钉小程序组件之自定义模态框(弹窗封装实现)
2020/03/07 Javascript
python调用cmd复制文件代码分享
2013/12/27 Python
Python实现点阵字体读取与转换的方法
2019/01/29 Python
对Python的交互模式和直接运行.py文件的区别详解
2019/06/29 Python
怎么快速自学python
2020/06/22 Python
CSS3实现淘宝留白的方法
2020/06/05 HTML / CSS
vue 中 get / delete 传递数组参数方法
2021/03/23 Vue.js
保护环境的建议书
2014/03/12 职场文书
团队经理竞聘书
2014/03/31 职场文书
关于工作时间玩手机的检讨书
2014/09/18 职场文书
2014年教师党员自我评价范文
2014/09/22 职场文书
优秀党员先进材料
2014/12/18 职场文书
雷锋电影观后感
2015/06/10 职场文书
2015年物业公司保洁工作总结
2015/10/22 职场文书
利用Python+OpenCV三步去除水印
2021/05/28 Python
HTML+CSS 实现顶部导航栏菜单制作
2021/06/03 HTML / CSS
SQL语句多表联合查询的方法示例
2022/04/18 MySQL