技术文摘
Vue实现模糊查询并为关键字添加颜色
2025-01-10 18:56:02 小编
Vue实现模糊查询并为关键字添加颜色
在Vue开发中,实现模糊查询并为关键字添加颜色是一个常见需求,它能有效提升用户体验,让用户快速定位到所需信息。下面将详细介绍如何实现这一功能。
创建一个Vue项目并设置基本的HTML结构。在模板中,添加一个输入框用于输入查询关键字,以及一个列表展示查询结果。例如:
<template>
<div>
<input v-model="searchText" placeholder="请输入关键字">
<ul>
<li v-for="(item, index) in filteredList" :key="index">
{{ highlightText(item) }}
</li>
</ul>
</div>
</template>
在上述代码中,searchText用于存储用户输入的关键字,filteredList是经过过滤后的列表数据,highlightText方法用于为匹配的关键字添加颜色。
接着,在Vue组件的script部分定义数据和方法:
export default {
data() {
return {
searchText: '',
list: ['苹果', '香蕉', '橙子', '葡萄', '西瓜']
}
},
computed: {
filteredList() {
if (!this.searchText) {
return this.list;
}
return this.list.filter(item => item.includes(this.searchText));
}
},
methods: {
highlightText(text) {
if (!this.searchText) {
return text;
}
const reg = new RegExp(this.searchText, 'gi');
return text.replace(reg, `<span style="color: red;">$&</span>`);
}
}
}
在data中定义了初始数据,searchText初始为空字符串,list是要展示的数据列表。computed中的filteredList方法根据用户输入的关键字对列表进行过滤。methods中的highlightText方法则使用正则表达式,将匹配的关键字替换为带有红色样式的<span>标签包裹的内容,从而实现关键字颜色高亮。
需要注意的是,由于直接使用innerHTML会有安全风险,在实际应用中,要确保用户输入是经过安全过滤的。
通过上述步骤,就能在Vue中轻松实现模糊查询并为关键字添加颜色的功能,为用户提供更友好的搜索体验,提升应用的交互性和实用性。
- URL验证:我如何学会停止担忧并爱上用户
- Nodejs v中env文件、模块导入及权限模型
- JavaScript 回调里的控制反转:Promise 为何是解决方案
- Nodejs应用程序记录的最佳实践
- 博客网站:第 10 天的网站
- 在 Nextjs 中利用 CSS 变量实现深色模式
- 把shadcn添加到现有项目的方法
- 告别CSS-in-JS
- Type ✔ 优于 Interface ❌:TypeScript 中选择 Type 而非 Interface 的原因
- 恩卡什v!!
- 4 分钟用最佳 JavaScript 动画库为 Web 项目添彩
- Javascript中const与freeze的声明使用
- 把Google街景整合到您的Web应用程序里
- JavaScript 与 WebAssembly:速度大比拼
- 在JavaScript中解构数组让代码更简洁