实现匹配搜索词高亮(Vue3)

news2024/11/17 14:52:40

1.使用插件实现ohlight

(1).下载插件

// pnpm 
pnpm i ohlight
// npm
npm i ohlight
// yarn
yarn add ohlight

如果让选择版本就按照提示的版本选择

(2).基本使用

>1.(Vue3)的使用

首先在vite.config.js中加入以下代码:

export default defineConfig({
  plugins: [
    vue({
      template: {
        compilerOptions: {
          //将所有包含短横线的标签作为自定义元素处理
          isCustomElement: (tag) => tag.includes("-"),
        },
      },
    }),
  ],
});

如果没用vite,那么在vue.config.js中加入以下代码:

//vue.config.js
module.exports = {
	chainWebpack:config => {
		config.module
			.rule('vue')
			.use('vue-loader')
			.tap(option => ({
				...options,
				compilerOptions:{
					//将所有以ion-开头的标签作为自定义元素处理
					isCustomElement:tag => tag.startsWith('ion-')
				}
			}))
	}
}

然后对于他的使用也很简单,如下:

<script setup>
import { oLight } from "ohlight";
import { ref, reactive } from "vue";

const value = ref();
const lightFont = reactive(["唱", "rap", "跳", "篮球"]);//高亮文字数据
let style = JSON.stringify({
  color: 'red',
  background: 'aliceblue',
  'font-style': 'oblique'
})
</script>
<template>
  <div>
    <input type="text" v-model="value" />
    <o-light :content="value" :keywords="lightFont.join(',')" :styles="style"></o-light>
  </div>
</template>

<style scoped></style>

下面是一些关于插件的属性

Api

属性

属性名类型描述默认值
contentstring文本内容-
keywordsstring关键词字符串,多个关键词使用'','隔开-
stylesstring高亮关键字样式,仅支持序列化后的CSSStyleDeclaration对象;注:涉及到驼峰写法的需要改写成 - 连接如:fontStyle 需要写成 font-style-
stableTimestring | number防抖时间,单位:(ms)200

事件

所有的事件内容均在event.detail中。

事件名类型描述默认值
loadFunction该方法在组件绘制完成并挂载后触发,返回当前组件实例,内容在event.detail中,可供操作dom使用等-
connectedCallbackFunction当自定义元素第一次被连接到文档 DOM 时被调用-
disconnectedCallbackFunction当自定义元素与文档 DOM 断开连接时被调用-
adoptedCallbackFunction当自定义元素被移动到新文档时被调用-
attributeChangedCallbackFunction当自定义元素的一个属性被增加、移除或更改时被调用。-

浏览器支持情况

chromeedgefirefoxoperasafari
53+79+63+40+10+

当然,关于这个插件也可以去他的官网参照,链接放在这里了:

(高亮划词插件链接)[https://www.npmjs.com/package/ohlight]

2.自己实现一个方法

<script setup lang="ts">
import { reactive, ref, toRefs } from 'vue'
const activeObj = reactive({
    arrWords: ['唱', '跳', 'rap', '篮球']
})
const inputVal = ref('');
let { arrWords } = toRefs(activeObj);

const brightenKeyword = (val: any, keyword: any) => {
    const Reg = new RegExp(keyword, 'i');
    const res = val.join('').replace(Reg, `<span style="color: #f4ea2a;">${keyword}</span>`)
    return res;
}
</script>
<template>
    <div class="container">
        <input type="text" v-model="inputVal" />
        <div v-html="brightenKeyword(arrWords, inputVal)"> </div>
    </div>
</template>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/442225.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AD9208调试经验分享

背景概述 FMC137 是一款基于 VITA57.4 标准规范的 JESD204B 接口FMC 子 卡 模 块 &#xff0c; 该 模 块 可 以 实 现 4 路 14-bit 、 2GSPS/2.6GSPS/3GSPSADC 采集功能。该板卡 ADC 器件采用 ADI 公司的 AD9208 芯片&#xff0c;&#xff0c;与 ADI 公司的 AD9689 可以实现 …

记一次adb查找安卓App崩溃报错记录

记一次adb查找安卓App崩溃报错记录 首先先说结论&#xff0c;是因为内存不足的时候会出现这种问题 在小米手机上有这么一个设置 可以很方面的模拟出这个异常 然后我们再设置一下logcat日志的大小 如果你的操作真的很多&#xff0c;最好设置一下&#xff0c;如果你的操作很短就…

「区间DP-步入」石子合并(环形)

石子合并&#xff08;环形&#xff09; 题目描述 在一个圆形操场的四周摆放 N 堆石子&#xff0c;现要将石子有次序地合并成一堆&#xff0c;规定每次只能选相邻的2堆合并成新的一堆&#xff0c;并将新的一堆的石子数&#xff0c;记为该次合并的得分。 试设计出一个算法,计算…

Java调用 webService 接口报错

问题描述 本文采用的是 jdk1.8.0_202&#xff0c;装在 D 盘中&#xff0c;配置了系统环境变量 path。 D:\Java\jdk8\bin;D:\Java\jdk8\jre\bin;本文调用 webservice 的依赖如下&#xff1a; <!-- webservice调用依赖cxf--><dependency><groupId>org.apache…

Vue3 + TS4.8其他踩坑记录

坑1&#xff1a;导入SFC组件的时候&#xff0c;直接提示错误&#xff0c;导入 Module "/Users/xinxiang/ProjectSpace/Practice/Vue/vue3-typescript4.8-issue-6305/src/components/HelloWorld.vue" has no default export.Vetur(1192) 解决方案1&#xff1a;Vue3项…

《剑指offer》——刷题日记

本期&#xff0c;给大家带来的是《剑指offer》几道题目的讲解。希望对大家有所帮助&#xff01;&#xff01;&#xff01; 本文目录 &#xff08;一&#xff09;JZ36 二叉搜索树与双向链表 1、题意分析 2、思路讲解 3、代码演示 4、最终结果 &#xff08;二&#xff09;B…

Nginx安装使用记录

参考文章&#xff1a;https://www.runoob.com/linux/nginx-install-setup.html 系统平台&#xff1a;Ubuntu 20.04.4 LTS (GNU/Linux 5.4.0-146-generic x86_64) 下载编译工具 sudo apt-get install zlib zlib-devel gcc-c libtool openssl openssl-develPCRE 官网&#xf…

Python每日一练(20230421)

目录 1. 组合总和 II &#x1f31f;&#x1f31f; 2. 加一 &#x1f31f; 3. 从中序与后序遍历序列构造二叉树 &#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 …

如何通过开源项目搭建私有云平台--第四步中:安装rancher longhorn

第四步中&#xff1a;安装rancher longhorn&#xff0c;实现容器文件挂载 之前在国企&#xff0c;曾经专门针对容器挂载立专项来调研&#xff0c;当时选择主流的ceph&#xff0c;最终结果是成功搭建了用于k8s集群的共享存储&#xff0c;但要独立找服务器来部署&#xff0c;增加…

Cloud computing(后续慢慢补充)

Cloud computing 可以看到右侧的容器虚拟化架构中&#xff0c;不需要运行额外的OS&#xff0c;这样启动的服务性能会相比于通过虚拟化软件实现的架构更优秀。但是虚拟机同样也有它的优点&#xff0c;比如它的安全、隔离性&#xff0c;可以运行不同的操作系统等等。 Virtualiz…

【linux】linux入门级别指令

一些基础指令 前言用户登录新建用户 ls指令pwd命令cd 指令which指令alias指令touch指令mkdir指令rmdir指令 && rm 指令rmdirrmman指令cp指令mv指令catmoreless指令head 指令tail指令输出重定向时间相关的指令cal指令find指令grep指令zip/unzip指令tar指令bc指令uname指…

Bootstrap01【前端开发框架】家居商城首页之导航轮播图

目录 一.WWW 1.What&#xff1f; 2.Why&#xff1f; 3.Where&#xff1f; 二.环境安装 三.案例 案例1&#xff1a;查询按钮原生态实现对比Bootstrap方式实现 案例3&#xff1a;首页导航原生态实现&#xff08;divcss&#xff09; 案例4&#xff1a;首页导航Bootstrap实…

2021遥感应用组二等奖:基于多源遥感数据的武夷山毛竹林提取研究及扩张特征分析

作品介绍 一、应用背景 近年研究表明&#xff0c;竹林固碳能力高&#xff0c;在维护全球碳平衡和应对气候变化等方面具有重要的作用。中国是竹资源最丰富的国家之一&#xff0c;在世界竹子研究领域处于领先地位。毛竹是中国本土竹类中分布最广、面积最大、经济价值最高的优良竹…

原来这就是所谓的 JSR!

相信大家在学习 Java 的过程中&#xff0c;或多或少都见过 JSR 这个词。本篇文章就科普下什么是 JSR。 什么是 JSR &#xff1f; JSR&#xff08;Java Specification Requests&#xff09;&#xff0c;是指 Java 规范请求&#xff08;或者活规范提案&#xff09;。这个请求&a…

1. VBA概述

VBA代表Visual Basic for Applications&#xff0c;这是一种来自Microsoft的事件驱动编程语言&#xff0c;现在主要与Microsoft Office应用程序(如MSExcel&#xff0c;MS-Word和MS-Access)一起使用。 它帮助技术人员构建定制的应用程序和解决方案&#xff0c;以增强这些应用程…

小程序 vs HTML 5 动态更新模式有何区别?

最近在看一些移动开发的文章&#xff0c;很多都在反复讲动态更新这个概念&#xff0c;其实换种讲法就是热更新&#xff0c;既然很多地方都在讲&#xff0c;作为一名“躺平”的开发者&#xff0c;必须再深入了解下具体的原理和模式。 动态机制及技术原理 动态研发模式就是一种…

Web 开发会话技术之 -Cookie介绍以及源码分析和图分析以及Cookie的生命周期--路径--中文乱码的分析和代码示例

目录 Web 开发会话技术之 -Cookie 会话 基本介绍 1. 什么是会话&#xff1f; 2. 会话过程中要解决的一些问题&#xff1f; cookie 技术 cookie 介绍 二说 cookie cookie 可以用来做啥 cookie 基本使用 cookie 常用方法 cookie 底层实现机制-创建和读取 Cookie Crea…

javaweb838仓库进销存管理系统

此系统主要分4个模块&#xff0c;分别是&#xff1a; 出库管理模块&#xff1a;对每种出库出去的商品都有相应的记录显示。 入库管理模块&#xff1a;对每种入库来的商品都有相应的记录显示&#xff0c;如果商品管理局显示某一厂家的某一种商品不符合要求&#xff0c;则在入库的…

变压器基本知识

1、高频变压器是工作频率超过中频&#xff08;10kHz&#xff09;的电源变压器&#xff0c;主要用于高频开关电源中&#xff0c;常用的工作频率是50K&#xff0c;65K。 变压器是变换交流电压、电流和阻抗的器件&#xff0c;当初级线圈中通有交流电流时&#xff0c;铁芯&#xff…