vue框架中input输入模糊查询的操作如何实现
Admin 2022-09-03 群英技术资讯 668 次浏览
vue 中通过计算属性实现模糊查询,创建 html 文件,代码直接放入即可。
这里自己导入 vue,我是导入本地已经下载好的。
<script src="./lib/vue-2.6.12.js"></script>
演示:
打开默认显示全部
输入关键字模糊查询,名字和年龄都可以
完整代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<div id="app">
<h2>人员列表</h2>
<input type="text" placeholder="请输入名字" v-model="keyWord">
<table>
<thead>
<tr>
<td>名字</td>
<td>年龄</td>
</tr>
</thead>
<tbody>
<tr v-for="(item,i) in fillist" :key="i">
<td>{{ item.name }}</td>
<td>{{ item.age }}</td>
</tr>
</tbody>
</table>
</div>
<script src="./lib/vue-2.6.12.js"></script>
<script>
const vm = new Vue({
el: '#app',
data: {
keyWord:'',
list:[
{ name: '张三', age: '18' },
{ name: '张四', age: '17' },
{ name: '张五', age: '17' },
{ name: '老六', age: '18' },
{ name: '老八', age: '18' },
{ name: '小三', age: '19' },
{ name: 'Xingyue', age: '18' },
]
},
computed:{
fillist(){
// 返回过滤后的数组
return this.list.filter((p)=>{
return p.name.indexOf(this.keyWord) !==-1 || p.age.indexOf(this.keyWord) !==-1
})
}
}
})
</script>
</body>
</html>
vue 中通过watch 监听实现模糊查询
vue 中通过计算属性实现模糊查询,创建 html 文件,代码直接放入即可。
完整代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<div id="app">
<h2>人员列表</h2>
<input type="text" placeholder="请输入名字" v-model="keyWord">
<table>
<thead>
<tr>
<td>名字</td>
<td>年龄</td>
</tr>
</thead>
<tbody>
<tr v-for="(item,i) in fillist" :key="i">
<td>{{ item.name }}</td>
<td>{{ item.age }}</td>
</tr>
</tbody>
</table>
</div>
<script src="./lib/vue-2.6.12.js"></script>
<script>
const vm = new Vue({
el: '#app',
data: {
keyWord:'',
list:[
{ name: '张三', age: '18' },
{ name: '张四', age: '17' },
{ name: '张五', age: '17' },
{ name: '老六', age: '18' },
{ name: '老八', age: '18' },
{ name: '小三', age: '19' },
{ name: 'Xingyue', age: '18' },
],
fillist:[]
},
watch:{
keyWord:{
immediate:true,//在框的值还没变化时执行如下函数显示出所有的情况
handler(val){
this.fillist = this.list.filter((p)=>{
return p.name.indexOf(val) !==-1 || p.age.indexOf(val) !==-1
})
}
}
}
})
</script>
</body>
</html>
演示和计算属性的一样。。
这里我是在 vue-cli 中完成的,完整代码如下。
vue.app 代码:
<template>
<div id="app">
<!-- 输入框 -->
<input type="text" v-model="value" placeholder="请输入姓名/年龄" />
<!-- 查询按钮 -->
<button @click="search">查询</button>
<!-- 给table表格赋值 -->
<table>
<thead>
<tr>
<td>姓名</td>
<td>年龄</td>
</tr>
</thead>
<tbody>
<tr v-for="(item,i) in tableData" :key="i">
<td>{{ item.name }}</td>
<td>{{ item.age }}</td>
</tr>
</tbody>
</table>
</div>
</template>
<script>
export default {
data() {
return {
value: '',
tableData: [
{ name: '张三', age: '18' },
{ name: '张四', age: '17' },
{ name: '张五', age: '17' },
{ name: '老六', age: '18' },
{ name: '老八', age: '18' },
{ name: '小三', age: '19' },
{ name: 'Xingyue', age: '18' },
],
//表格B用原表格的数据
tableDataB: [
{ name: '张三', age: '18' },
{ name: '张四', age: '17' },
{ name: '张五', age: '17' },
{ name: '老六', age: '18' },
{ name: '老八', age: '18' },
{ name: '小三', age: '19' },
{ name: 'Xingyue', age: '18' },
],
};
},
methods: {
// 点击搜索 支持模糊查询
search() {
//表格用原表格的数据 即 用于搜索的总数据
this.tableData = this.tableDataB;
//获取到查询的值,并使用toLowerCase():把字符串转换成小写,让模糊查询更加清晰
let _search = this.value.toLowerCase();
let newListData = []; // 用于存放搜索出来数据的新数组
if (_search) {
//filter 过滤数组
this.tableData.filter((item) => {
// newListData中 没有查询的内容,就添加到newListData中
if (
item.name.toLowerCase().indexOf(_search) !== -1 ||
item.age.toLowerCase().indexOf(_search) !== -1
) {
newListData.push(item);
}
});
}
//查询后的表格 赋值过滤后的数据
this.tableData = newListData;
},
},
}
</script>
<style></style>
main.js 代码如下:
import Vue from 'vue'
import App from './App.vue'
Vue.config.productionTip = false
new Vue({
render: h => h(App),
}).$mount('#app')
整体结构:
演示:
输入关键字,点击查询:
大小写模糊查询:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了vant picker+popup 自定义三级联动案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
今天学习怎么生成二维码,我习惯所有请求都用ajax完成,但是今天发现jquery的ajax不支持二进制,只能搞纯文本,下文有实例供大家参考,对大家了解操作过程或相关知识有一定的帮助,而且实用性强,希望这篇文章能帮助大家,下面我们一起来了解看看吧。
这篇文章主要介绍vue中setup函数的使用,对于setup函数的特性和、作用和需要注意的点本文都有详细的介绍,另外还分享了setup函数使用的两种方法的实例,感兴趣的朋友可以参考,接下来我们一起了解看看吧。
ES5和ES6中的apply异同在哪?在ES6中,新增了一个全局、内建、不可构造的Reflect对象,而且还提供了其下一系列可被拦截的操作方法。而其中的一个方法就是Reflect.apply(),我们知道ES5中也有apply,那么Reflect.apply()和ES5的Function.prototype.apply()有哪些区别和相同的地方呢?
目录打包部署后默认路由不正确问题描述解决方案vue打包后路径不对对于背景图片不显示的问题动画无法运行小图标没了打包部署后默认路由不正确问题描述vue项目本地开发的时候默认路由没问题,例如redirect:/index但是部署以后,服务器上默认路由不正确,现在遇到的问题是,会默认跳转到login页面,前提项目没有做路由权
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008