vue使用v-html实现一段字符串中关键字(词)高亮效果

简介: vue使用v-html实现一段字符串中关键字(词)高亮效果

问题描述

需求:我们搜索某个关键字,后端返回给我们一个字符串,这个字符串中包含我们搜索的关键字,我们需要把这个字符串中的关键字部分加上高亮效果(类似于百度搜索关键字高亮的效果)。我们先看一下,大致类似的效果图:

snipaste_20210316_000836.png

如上图所示,需求很简单,就是关键字高亮。

思路分析

解决方式有两种,第一种就是进行字符串的切割,把关键字切出来,加上一个颜色。这种方式上一篇文章关于字符串的方法整理的文章已经说过了,不赘述,详情可点击链接跳转瞅瞅。

附上地址吧: https://juejin.cn/post/6940274572390301732

接下来我们说第二种方式,使用v-html指令加上字符串的替换方法,话不多说,上代码。

<template>
  <div id="app">
    <div>
      <span v-html="highLight(title)">{{title}}</span>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      title:"五百年前孙悟空大闹天宫",
      searchWord:"孙悟空"
    };
  },
  methods: {
    highLight(title){
      // 如果标题中包含,关键字就替换一下
      if(title.includes(this.searchWord)){
        title = title.replace(
            this.searchWord, 
            // 这里是替换成html格式的数据,最好再加一个样式权重,保险一点
            '<font style="color:red!important;">'+ this.searchWord +'</font>'
        )
        return title
      }
      // 不包含的话还用这个
      else{
        return title
      }
    }
  },
};
</script>

代码效果图:

image.png

DOM元素审查

image.png

总结

v-html好像平常不怎么用到这个vue的指令,不过实际上在某些场景下,使用v-html能够很好的解决问题

相关文章
|
6月前
|
JavaScript 前端开发 开发者
Vue 动态添加 HTML 元素组件封装使用方法及长尾关键词优化指南
本文详细介绍了Vue中动态添加HTML元素的使用方法与组件封装技巧。内容涵盖条件渲染(v-if/v-show)、列表渲染(v-for)、动态组件(:is)、手动操作DOM及动态创建组件实例等核心方法。同时,通过动态表单、弹窗组件和动态加载组件的封装示例,展示如何提升代码复用性和可维护性。最后,总结性能优化策略与注意事项,如批量更新DOM、懒加载大型组件及避免直接操作DOM等,帮助开发者在实际项目中灵活应用Vue动态元素管理功能。
192 15
|
6月前
|
JavaScript 前端开发 开发者
Vue 动态添加 HTML 元素组件封装使用方法及长尾关键词优化指南
本文详细介绍了Vue中动态添加HTML元素的多种方法与组件封装技巧,涵盖条件渲染(v-if/v-show)、列表渲染(v-for)、动态组件(:is)、手动DOM操作及动态创建组件实例等内容。同时提供了性能优化建议,如批量更新DOM、使用v-show代替v-if以及懒加载大型组件等。通过合理封装组件,可提高代码复用性和维护性。文中还附有具体示例代码,帮助开发者更好地理解和应用相关技术。适用于前端开发人员学习和实践Vue动态元素处理与组件设计。
169 19
|
6月前
|
缓存 JavaScript 前端开发
Vue 项目中动态添加 HTML 元素的方法与实践
本文探讨了 Vue 中动态添加 HTML 元素的多种技术方案,包括条件渲染(v-if/v-show)、动态组件(component :is)、手动挂载($mount)及 Vuex 状态管理等方法。通过实例分析,如动态表单生成器与全局模态框服务,展示了这些方案在实际开发中的应用。同时提供了性能优化建议和注意事项,帮助开发者根据需求选择最佳方式,在保持 Vue 响应式特性的同时实现灵活交互。附带代码示例,便于理解和实践。
186 2
|
JavaScript 前端开发 安全
vue -- 指令 -- v-text/html/on/show/if/bind/for/model
【10月更文挑战第17天】Vue 指令是构建 Vue 应用的基础工具,掌握它们的特性和用法是成为一名优秀 Vue 开发者的重要一步。通过深入理解和熟练运用这些指令,可以打造出更加出色的前端应用。
172 50
|
JavaScript 前端开发
react字符串转为dom标签,类似于Vue中的v-html
本文介绍了在React中将字符串转换为DOM标签的方法,类似于Vue中的`v-html`指令,通过使用`dangerouslySetInnerHTML`属性实现。
399 0
react字符串转为dom标签,类似于Vue中的v-html
|
JavaScript 前端开发 容器
Vue生成PDF文件攻略:html2canvas与jspdf联手,中文乱码与自动换行难题攻克
Vue生成PDF文件攻略:html2canvas与jspdf联手,中文乱码与自动换行难题攻克
1684 0
|
资源调度 JavaScript 应用服务中间件
HTML、WebStrom和Vue使用
HTML、WebStrom和Vue使用
74 3
|
JavaScript 前端开发
基于Vue实现具有固定表头、合并单元格的Html表格
本文介绍了如何在Vue框架中创建一个具有固定表头和合并单元格功能的HTML表格,通过CSS的`position: sticky`属性实现表头固定,并通过设置`rowspan`和`colspan`属性来实现单元格合并。
364 0
基于Vue实现具有固定表头、合并单元格的Html表格
|
JavaScript 前端开发 数据库
vue+elementUi实现将数字转化为 对应的字符串内容
该博客文章介绍了如何在Vue框架结合Element UI组件库中,将数字状态字段转换为具体的字符串描述,并通过`el-table-column`展示在表格中。
vue+elementUi实现将数字转化为 对应的字符串内容
HTML+JavaScript构建一个将C/C++定义的ANSI字符串转换为MASM32定义的DWUniCode字符串的工具
HTML+JavaScript构建一个将C/C++定义的ANSI字符串转换为MASM32定义的DWUniCode字符串的工具