vue实现关键字高亮效果的示例代码

 更新时间:2024年11月28日 09:59:58   作者:叫我+V  
这篇文章主要为大家详细介绍了如何使用vue实现关键字高亮效果,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下

这是啥子意思呢,就是类似于百度搜索,根据关键词搜索结果,搜索结果中,与关键词相同的字显示红色,仅此而已,没有什么大的功能。简单写一下demo。

环境

我使用的是 vue3 + ts 的语法来写,其实一个样儿,关键代码 js、ts 都可以,就一个方法,调用一下就可以了。

<template>
  <div class="ed-con">
    <el-input v-model="input" style="width: 240px" placeholder="Please input"/>
    <p v-html="txt"></p>
  </div>
</template>

<script setup lang="ts">
import {ref} from 'vue';

const input = ref('');

const txt = ref('在古老的小镇边缘,有一间被岁月温柔抚摸过的木屋,它静静地伫立在一片绚烂的野花丛中。屋内,住着一位名叫苏婉的女子,她拥有一双能洞察人心的眼睛和一头如夜色般深邃的长发。每天黄昏,苏婉都会坐在窗边,手捧一本泛黄的书,眼神时而凝重,时而温柔,仿佛在与书中人物进行着跨越时空的对话。\n' +
    '\n' +
    '某天,一阵突如其来的风雨打破了小镇的宁静,也吹散了苏婉心中的平静。一位浑身湿透的青年男子闯入了她的世界,带着一身未解之谜。苏婉望着他,眼中闪过一抹不易察觉的光芒,她知道,自己的生活从此将不再平凡。两人在雨后的木屋里,围绕着炉火,开始编织起一段关于寻找、救赎与爱的故事,而窗外的世界,正悄悄地为这段奇遇添上一抹神秘的色彩。')

</script>

<style scoped lang="scss">
.ed-con {
  width: 100%;
  height: 100%;
  padding: 20px;
  box-sizing: border-box;

  ::v-deep(.ed-highlight) {
    color: red;
  }
}
</style>

上面的代码运行起来就是这样的:

接下来就是怎么实现输入框输入数据之后,下面的文字中,与关键字相同的文字高亮成红色的,很简单,就一个方法:

const highlightText = () => {
  if (!input.value) {
    return txt.value;
  }
  const regex = new RegExp(`(${input.value})`, 'gi');
  const highlightedText = txt.value.replace(regex, '<span class="ed-highlight">$1</span>');
  return highlightedText;
}

然后再调用一下这个方法就可以了:

<p v-html="highlightText()"></p>

就是把关键字给用标签包裹起来,然后给这个标签设置一个 class 样式,然后通过 css 代码,给这个 class 加上一个红色的样式,就这样:

到此这篇关于vue实现关键字高亮效果的示例代码的文章就介绍到这了,更多相关vue关键字高亮内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue excel上传预览和table内容下载到excel文件中

    vue excel上传预览和table内容下载到excel文件中

    这篇文章主要介绍了vue excel上传预览和table内容下载到excel文件中,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • vue3如何解决slot深层透传问题

    vue3如何解决slot深层透传问题

    这篇文章主要介绍了vue3如何解决slot深层透传问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • 一文带你了解什么是Vue的前端微服务架构(Micro Frontends)

    一文带你了解什么是Vue的前端微服务架构(Micro Frontends)

    微前端架构是一种将大型前端应用拆分为多个小型、独立的前端应用的架构风格,每个小型前端应用都可以独立部署、独立开发和独立运行,下面我们就来学习一下它的相关使用吧
    2023-11-11
  • Vue实现选中文本弹出弹窗功能的完多种方法

    Vue实现选中文本弹出弹窗功能的完多种方法

    在现代 Web 应用中,选中文本后显示相关操作或信息是一种常见的交互模式,本文将详细介绍如何在 Vue 中实现选中文本后弹出弹窗的功能,包括其工作原理、多种实现方式以及实际项目中的应用示例,需要的朋友可以参考下
    2025-09-09
  • Vue项目的表单校验实战指南

    Vue项目的表单校验实战指南

    这篇文章主要介绍了Vue项目表单校验的相关资料,前端表单校验能减少无效请求,保护后端接口,使用ElementPlus表单组件进行校验,需要准备表单对象、规则对象并进行双向绑定,用户名、密码以及协议勾选等字段都需符合特定规则,需要的朋友可以参考下
    2024-10-10
  • elementUI弹窗里的表单重置不生效问题解决

    elementUI弹窗里的表单重置不生效问题解决

    本文主要介绍了elementUI弹窗里的表单重置不生效问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Vite+TS+Vue开启eslint和prettier规范及校验方式

    Vite+TS+Vue开启eslint和prettier规范及校验方式

    这篇文章主要介绍了Vite+TS+Vue开启eslint和prettier规范及校验方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • vue加载天气组件使用方法详解

    vue加载天气组件使用方法详解

    这篇文章主要为大家详细介绍了vue加载天气组件的使用方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • 在Vue3项目中使用Jest配置生成测试报告的示例详解

    在Vue3项目中使用Jest配置生成测试报告的示例详解

    在Vue 3项目中使用Jest进行单元测试是一种常见的做法,它可以帮助我们验证代码的正确性和稳定性,本文将介绍如何在Vue 3项目中配置Jest,以生成测试报告,需要的朋友可以参考下
    2023-09-09
  • vue3.0透传属性和事件的使用方式举例

    vue3.0透传属性和事件的使用方式举例

    这篇文章主要给大家介绍了关于vue3.0透传属性和事件使用的相关资料,透传attribute指的是传递给一个组件,却没有被该组件声明为props或emits的attribute或者v-on事件监听器,需要的朋友可以参考下
    2024-01-01

最新评论