vue模糊查询,输入西天,可以查询到西安的天气很好这句话,输入西,也可以查询到,关键字高亮,完整举例
时间: 2023-12-06 18:02:45 浏览: 74
好的,这里给出一个简单的例子,希望能对你有所帮助。
HTML代码:
```html
<div id="app">
<input type="text" v-model="keyword" placeholder="请输入关键字">
<ul>
<li v-for="(item, index) in filteredList" :key="index" v-html="highlight(item)">
</li>
</ul>
</div>
```
Vue.js代码:
```javascript
new Vue({
el: '#app',
data() {
return {
keyword: '',
list: [
'西安的天气很好',
'北京的天气很冷',
'上海的天气很热',
'深圳的天气很湿'
]
}
},
computed: {
// 根据关键字过滤数据
filteredList() {
return this.list.filter(item => item.includes(this.keyword))
}
},
methods: {
// 将匹配的关键字高亮显示
highlight(text) {
if (!this.keyword) {
return text
}
const reg = new RegExp(`(${this.keyword})`, 'gi')
return text.replace(reg, '<span class="highlight">$1</span>')
}
}
})
```
CSS代码:
```css
.highlight {
color: red;
font-weight: bold;
}
```
这个例子中,我们使用了Vue.js的computed属性来根据用户的输入过滤数据。我们还定义了一个highlight方法,将匹配的关键字高亮显示。在这个方法中,我们使用了正则表达式来匹配关键字,并将匹配的文本用span标签包裹起来,以便于设置样式。
阅读全文