标题 使用计算属性来实现该功能
首先写好一个列表
![在这里插入图片描述](https://www.icode9.com/i/ll/?i=20200331213310518.png?,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNTQxMzI2,size_16,color_FFFFFF,t_70
写好的样式是这样滴
操作来了
在computed里面定义了一个search函数 使用filter过滤
接下来
在method 里面写一个sousuo1函数 进行一个判断 如果搜索这个输入框框里是空 就是展示原数据 如果这个不为空 就会展示搜索到的数据
最后 很重要
把list改为sousuo1()这个函数
看效果
接下来把全部代码写上 里面的vue引入的是cdn 直接复制黏贴就可以用
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Page Title</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" media="screen" href="main.css">
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="main.js"></script>
<style>
#app {
text-align: center;
}
table {
margin: 0 auto;
}
td {
width: 100px;
}
</style>
</head>
<body>
<div id="app">
<input type="text" placeholder="搜索" v-model="sousuo">
<table border="1">
<th>编号</th>
<th>英雄</th>
<th>技能</th>
<tr v-for="(item,index) in sousuo1()" :key="item.id">
<td>{{item.id}}</td>
<td>{{item.name}}</td>
<td>{{item.jn}}</td>
</tr>
</table>
</div>
</body>
<script>
var app = new Vue({
el: '#app',
data: {
sousuo: '',
list: [{
"id": 1,
"name": "后裔",
"jn": "射箭"
}, {
"id": 2,
"name": "妲己",
"jn": "魅惑"
}, {
"id": 3,
"name": "猴子",
"jn": "棍子"
}, ]
},
computed: { //设置计算属性
Search() {
if (this.sousuo) {
return this.list.filter((value) => { //过滤数组元素 this.list就是上面的那个死数据
return value.name.includes(this.sousuo); // 查看value.name里面包含不包含输入的字体
}); //this.sousuo跟上面的输入框是双重绑定
}
}
},
methods: {
sousuo1() {
if (!this.sousuo) {
return this.list;
}
return this.Search
}
},
})
</script>
</html>