<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div id="app" class="container">
<input type="text" class="form-control" v-model="filterText" style="width: 300px;" placeholder="請輸入 Lala / Grete / Steffi 後按 Enter" @keyup.enter="filterData">
<ul>
<li v-for="(item, key) in filterArray" :key="item.age">
{{ key }} - {{ item.name }} {{ item.age }} 歲
</li>
</ul>
</div>
</body>
</html>
Vue.component("list-item", {
template: `
<li>
{{ item.name }} {{ item.age }} 歲
</li>
`,
props: ["item"]
});
var app = new Vue({
el: "#app",
data: {
arrayData: [
{
name: "Lala",
age: 16
},
{
name: "Grete",
age: 24
},
{
name: "Steffi",
age: 20
}
],
objectData: {
ming: {
name: "小明",
age: 16
},
auntie: {
name: "漂亮阿姨",
age: 24
},
jay: {
name: "杰倫",
age: 20
}
},
filterArray: [],
filterText: ""
},
methods: {
filterData: function() {
var vm = this;
vm.filterArray = vm.arrayData.filter(function(item) {
return item.name.match(vm.filterText);
});
}
}
});