Vue3/Vue2实现文章内容中多个“关键词“标记高亮显示

发布时间:2024年01月18日

一、实现效果

下拉列表高亮展示关键词
在这里插入图片描述

二、实现思路

安装 “vue-word-highlighter” ,这是一个 支持 Vue3 和 Vue2,不过 Vue2 版本是通过 vue-demi 构建的

三、案例代码

package.json

 "vue-word-highlighter": "^1.0.4"

Vue3

yarn add vue-word-highlighter
# or
npm install vue-word-highlighter

Vue2: powered by vue-demi.

yarn add vue-word-highlighter @vue/composition-api
# or
npm install vue-word-highlighter @vue/composition-api

参考网址:https://www.npmjs.com/package/vue-word-highlighter

html

<template>
  <WordHighlighter query="vue">
    The word highlighter library for Vue 2.x Vue 3.x 💅
  </WordHighlighter>
  <!--  or
  <WordHighlighter 
    query="vue"
    textToHighlight="The word highlighter library for Vue 2.x Vue 3.x 💅"
  />
  -->
</template>

<script lang="ts">
import { defineComponent } from "vue";
import WordHighlighter from "vue-word-highlighter";

export default defineComponent({
  name: "App",
  components: {
    WordHighlighter,
  },
  setup() {
    return {};
  },
});
</script>

效果图

在这里插入图片描述

四、属性介绍

属性类型默认值描述
queryString or RegExp- 必填搜索内容,可以使用字符串或正则表达式。
caseSensitiveBooleanfalse是否区分大小写。
diacriticsSensitiveBooleanfalse是否区分变音符号,如 u 和 ü。
splitBySpaceBooleanfalse是否用空格分割字符串以使其成为搜索字符串,如果设置为false,则默认把搜索内容当成一个整体进行搜索;当 query 为正则时,splitBySpace 默认为 false。
highlightTagString< mark />标记搜索到的内容所包裹的标签。
highlightClassString or Object or Array-给标记的内容添加 class,绑定语法类似于 vue
highlightStyleString or Object or Array-给标记的内容添加 style,绑定语法类似于 vue
wrapperTagString< span />整个目标搜索区的容器标签。
wrapperClassString or Object or Array-给目标搜索区的容器添加 class,绑定语法类似于 vue 。
textToHighlightStringv-slot:default目标搜索区的内容。
htmlToHighlightString-要突出显示的文本。该值插入为InnerHTML. 该道具优先于textToHighlight和slot。此 props 是一项实验性功能,仅适用于 Vue3。

五、事件介绍

事件名称说明回调参数
matchesquery 参数变化时触发,函数返回搜索到的内容function(value:Array)

六、核心方法

在这里插入图片描述

文章来源:https://blog.csdn.net/qq_39490750/article/details/135679714
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。