Vue3使用v-html实现文本关键词变色处理

 更新时间:2024年06月26日 09:30:52   作者:剑亦未配妥  
遍历文本内容,找到关键词,并使用某种方法更改其字体样式,经过搜寻资料决定采用v-html实现,但是v-html本身并不安全,有安全性风险且影响性能,所以谨慎使用,本文给大家介绍了Vue3使用v-html实现文本关键词变色处理,需要的朋友可以参考下

首先看应用场景

这有一段文本内容,是项目的简介,想要实现将文本中的关键词进行变色处理

有如下关键词

实现思路

遍历文本内容,找到关键词,并使用某种方法更改其字体样式。经过搜寻资料决定采用v-html实现,但是v-html本身并不安全,有安全性风险且影响性能,所以谨慎使用。
想详细了解的同学的同学可以看一下官网的介绍

uniapp官网v-htlml

vue官网v-html

实现代码

//存储结果
const introduction_content = ref('')
//定义函数
const updateColor = function (content: string) {
    let keywords = ['导师:', '关联比赛:', '获得成就:', '未来发展:', '奖金:']
    const result = ref(content) // 初始值为原始内容
    //本项目的需求是根据项目状态动态变更颜色
    const color = ref(
      detailData.value!.status == 0
        ? 'rgba(7, 193, 96, 1)'
        : detailData.value!.status == 1
        ? 'rgba(250, 157, 59, 1)'
        : detailData.value!.status == 2
        ? 'rgba(250, 81, 81, 0.5)'
        : ''
    )
    // 遍历每个关键词并进行替换
    keywords.forEach((keyword) => {
      const regex = new RegExp(keyword, 'gi')
      // 每次替换都基于当前的 result.value
      result.value = result.value.replace(
        regex,
        `<span style="color: ${color.value};font-size:15px;">${keyword}</span>`
      )
    })
    introduction_content.value = result.value
}

需要注意的是,如果需要更改字体大小,不能使用rpx等,需要使用px

可以输出introduction_content看一下,结果如下

xx项目简介
<span style="color: rgba(7, 193, 96, 1);font-size:15px;">导师:</span>​xxx
<span style="color: rgba(7, 193, 96, 1);font-size:15px;">关联比赛:</span>​建模
<span style="color: rgba(7, 193, 96, 1);font-size:15px;">奖金:</span>​100

到此这篇关于Vue3使用v-html实现文本关键词变色处理的文章就介绍到这了,更多相关Vue3 v-html关键词变色内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 解决vue项目nginx部署到非根目录下刷新空白的问题

    解决vue项目nginx部署到非根目录下刷新空白的问题

    今天小编就为大家分享一篇解决vue项目nginx部署到非根目录下刷新空白的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • 关于keep-alive路由多级嵌套不生效的解决方案

    关于keep-alive路由多级嵌套不生效的解决方案

    本文主要介绍了关于keep-alive路由多级嵌套不生效的解决方案,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • 使用Vue3和ApexCharts实现交互式3D折线图

    使用Vue3和ApexCharts实现交互式3D折线图

    ApexCharts 是一个功能强大的 JavaScript 库,用于创建交互式、可定制的图表,在 Vue.js 中,它可以通过 vue3-apexcharts 插件轻松集成,本文给大家介绍了使用Vue3和ApexCharts实现交互式3D折线图,需要的朋友可以参考下
    2024-06-06
  • Vue高效管理组件状态的多种方法

    Vue高效管理组件状态的多种方法

    在现代前端开发中,随着应用复杂度的不断提升,组件状态管理成为构建高效、可维护的Vue应用的核心问题,本文将介绍多种管理组件状态的方法,需要的朋友可以参考下
    2025-03-03
  • 如何利用SpringBoot与Vue3构建前后端分离项目

    如何利用SpringBoot与Vue3构建前后端分离项目

    在当前的互联网时代,前后端分离架构已经成为构建应用系统的主流方式,本文将详细介绍如何利用 SpringBoot 与 Vue3 构建一个前后端分离的项目,感兴趣的小伙伴可以了解下
    2025-04-04
  • Vue组件基础用法详解

    Vue组件基础用法详解

    组件(Component)是Vue.js最强大的功能之一。组件可以扩展HTML元素,封装可重用的代码,本文将详细介绍Vue组件基础用法
    2020-02-02
  • VUE3传值相关的6种方法总结

    VUE3传值相关的6种方法总结

    件间传参是vue开发过程中一个很常见的应用,对于我们后端开发来说,每次看到这种组件传参的代码就一头雾水,下面这篇文章主要给大家介绍了关于VUE3传值相关的6种方法,需要的朋友可以参考下
    2023-04-04
  • vue使用JSON编辑器:vue-json-editor详解

    vue使用JSON编辑器:vue-json-editor详解

    文章介绍了如何在Vue项目中使用JSON编辑器插件`vue-json-editor`,包括安装、引入、注册和使用示例,通过这些步骤,用户可以在Vue应用中轻松实现JSON数据的编辑功能,文章最后呼吁大家支持脚本之家
    2025-01-01
  • vue+elementUI实现点击左右箭头切换按钮功能

    vue+elementUI实现点击左右箭头切换按钮功能

    这篇文章主要介绍了vue+elementUI实现点击左右箭头切换按钮功能,样式可以根据自己需求改动,感兴趣的朋友可以参考下实现代码
    2024-05-05
  • 详解vue的hash跳转原理

    详解vue的hash跳转原理

    这篇文章主要介绍了vue的hash跳转原理,帮助大家更好的理解和学习使用vue框架,感兴趣的朋友可以了解下
    2021-03-03

最新评论