淘先锋技术网

首页 1 2 3 4 5 6 7

有时候我们需要在网站上添加一个搜索功能,方便用户快速找到自己想要的内容,为此,我们可以使用Vue.js来完成这个搜索功能。

首先,我们需要创建一个Vue实例,然后定义一个data属性用来存储我们搜索的内容,代码如下:

var vm = new Vue({
el: '#app',
data: {
searchText: ''
}
})

接着我们需要编写一个搜索框,让用户可以在里面输入搜索词。我们可以使用Vue的v-model指令来实现这一步,代码如下:

现在,我们已经可以获取用户输入的搜索关键字了,接下来需要将这个关键字与我们的数据进行匹配,并显示出匹配结果。这个过程可以通过计算属性来完成,代码如下:

  • {{ item }}
var vm = new Vue({ el: '#app', data: { searchText: '', items: ['apple', 'banana', 'orange', 'pear'] }, computed: { matchingItems: function() { return this.items.filter(function(item) { return item.indexOf(this.searchText) !== -1 }.bind(this)) } } })

这样,我们就完成了一个简单的搜索功能。

但是,有时候数据比较庞大,我们直接在前端进行搜索会影响性能,这个时候,我们可以使用后端的搜索接口来进行搜索。

我们可以在Vue中使用axios来发起一个异步请求,并在得到结果后将其展示给用户,代码如下:

var vm = new Vue({
el: '#app',
data: {
searchText: '',
items: []
},
methods: {
search: function() {
this.items = []
axios.get('/search', {
params: {
searchText: this.searchText
}
}).then(function(response) {
this.items = response.data
}.bind(this))
}
}
})
  • {{ item }}

与此同时,我们需要后端提供一个/search接口,接收前端传入的searchText参数,并进行相应的搜索操作,返回匹配的结果。

构建搜索功能可能需要的额外的工作量,但是通过Vue.js的灵活性,我们能够轻松实现前端的搜索功能。