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 相关文章推荐
Jquery Ajax学习实例 向页面发出请求,返回XML格式数据
Mar 14 Javascript
基于JQuery实现CheckBox全选全不选
Jun 27 Javascript
jQuery手机浏览器中拖拽动作的艰难性分析
Feb 04 Javascript
JavaScript在浏览器标题栏上显示当前日期和时间的方法
Mar 19 Javascript
jQuery仅用3行代码实现的显示与隐藏功能完整实例
Oct 08 Javascript
js实现跨域的多种方法
Dec 25 Javascript
JQuery日期插件datepicker的使用方法
Mar 03 Javascript
总结JavaScript三种数据存储方式之间的区别
May 03 Javascript
ReactNative-JS 调用原生方法实例代码
Oct 08 Javascript
vue组件name的作用小结
May 23 Javascript
JavaScript中变量提升机制示例详解
Dec 27 Javascript
vue 实现一个简单的全局调用弹窗案例
Sep 10 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
声音就能俘获人心,蕾姆,是哪个漂亮小姐姐配音呢?
2020/03/03 日漫
PHP的分页功能
2007/03/21 PHP
php仿微信红包分配算法的实现方法
2016/05/13 PHP
表单填写时用回车代替TAB的实现方法
2007/10/09 Javascript
JS获取dom 对象 ajax操作 读写cookie函数
2009/11/18 Javascript
javascript跟随滚动效果插件代码(javascript Follow Plugin)
2013/08/03 Javascript
jQuery选择器全面总结
2014/01/06 Javascript
js 获取元素下面所有li的两种方法
2014/04/14 Javascript
在JavaScript中操作数组之map()方法的使用
2015/06/09 Javascript
js实现点击文本框显示日期选择器特效代码分享
2020/05/21 Javascript
jquery的checkbox,radio,select等方法小结
2016/08/30 Javascript
微信小程序中的onLoad详解及简单实例
2017/04/05 Javascript
详解vuejs几种不同组件(页面)间传值的方式
2017/06/01 Javascript
深入理解jquery的$.extend()、$.fn和$.fn.extend()
2017/07/08 jQuery
JavaScript实现动态添加Form表单元素的方法示例
2017/08/14 Javascript
VUEJS 2.0 子组件访问/调用父组件的实例
2018/02/10 Javascript
jQuery中的for循环var与let的区别
2018/04/21 jQuery
vue实现简单loading进度条
2018/06/06 Javascript
JavaScript实现拖拽盒子效果
2020/02/06 Javascript
vue项目实现减少app.js和vender.js的体积操作
2020/11/12 Javascript
Js实现粘贴上传图片的原理及示例
2020/12/09 Javascript
[00:33]DOTA2上海特级锦标赛 CDEC战队宣传片
2016/03/04 DOTA
python迭代器的使用方法实例
2013/11/21 Python
python实用代码片段收集贴
2015/06/03 Python
python运行时强制刷新缓冲区的方法
2019/01/14 Python
Python实现爬取马云的微博功能示例
2019/02/16 Python
Python_查看sqlite3表结构,查询语句的示例代码
2019/07/17 Python
Python使用docx模块实现刷题功能代码
2020/02/13 Python
python实现拼接图片
2020/03/23 Python
TensorFlow Autodiff自动微分详解
2020/07/06 Python
Python实现封装打包自己写的代码,被python import
2020/07/12 Python
python判断all函数输出结果是否为true的方法
2020/12/03 Python
在Ubuntu中安装并配置Pycharm教程的实现方法
2021/01/06 Python
本科毕业生求职自荐信
2014/04/09 职场文书
学习保证书100字
2015/02/26 职场文书
巴黎圣母院读书笔记
2015/06/26 职场文书