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 + ele 实现下拉选择框和下拉多选选择框处理方案

    vue + ele 实现下拉选择框和下拉多选选择框处理方案

    这篇文章主要介绍了vue + ele 实现下拉选择框和下拉多选选择框处理方案,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08
  • 前端Vue手机号校验以及后端Java手机号校验例子

    前端Vue手机号校验以及后端Java手机号校验例子

    接收一个输入的手机号,判断输入的手机号是否正确是一个很常见的功能,这篇文章主要给大家介绍了关于前端Vue手机号校验以及后端Java手机号校验的相关资料,需要的朋友可以参考下
    2023-11-11
  • 详解使用vue-cli脚手架初始化Vue项目下的项目结构

    详解使用vue-cli脚手架初始化Vue项目下的项目结构

    这篇文章主要介绍了详解使用vue-cli脚手架初始化Vue项目下的项目结构,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • Vue与Node.js通过socket.io通信的示例代码

    Vue与Node.js通过socket.io通信的示例代码

    这篇文章主要介绍了Vue与Node.js通过socket.io通信的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • 解决vue-router 二级导航默认选中某一选项的问题

    解决vue-router 二级导航默认选中某一选项的问题

    今天小编就为大家分享一篇解决vue-router 二级导航默认选中某一选项的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • Vue3页面数据加载延迟的问题分析和解决方法

    Vue3页面数据加载延迟的问题分析和解决方法

    在 Vue 3 的项目中,当我们使用响应式数据(如 ref 或 computed)来管理页面状态时,可能会遇到由于接口数据加载延迟,导致页面初始渲染时数据尚未获取完成的问题,本文针对此问题简单分析了原因和解决方法,需要的朋友可以参考下
    2024-11-11
  • 解决vue父组件调用子组件只执行一次问题

    解决vue父组件调用子组件只执行一次问题

    开发中,需求是将内容展示作为一个组件,输入为contentId,请求在组件中,只需根据父组件传过来的contentId去请求内容的详情即可,但是过程中却发现一个问题,父组件调用子组件只执行一次,所以本文就给大家介绍解决vue父组件调用子组件只执行一次问题
    2023-09-09
  • React和Vue中监听变量变化的方法

    React和Vue中监听变量变化的方法

    这篇文章主要介绍了React和Vue中监听变量变化的方法,本文通过一个场景,父组件传递子组件一个A参数,子组件需要监听A参数的变化转换为state,具体内容详情大家跟随小编一起通过本文学习吧
    2018-11-11
  • 前端VUE3项目部署到linux服务器(CentOS 7)完整步骤

    前端VUE3项目部署到linux服务器(CentOS 7)完整步骤

    这篇文章主要介绍了前端VUE3项目部署到linux服务器(CentOS 7)的相关资料,包括项目打包、连接服务器、安装和配置Nginx、上传文件以及配置Nginx,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2026-01-01
  • Vue Object.defineProperty及ProxyVue实现双向数据绑定

    Vue Object.defineProperty及ProxyVue实现双向数据绑定

    这篇文章主要介绍了Vue Object.defineProperty及ProxyVue实现双向数据绑定,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09

最新评论