Vue关键词搜索高亮
web前端开发
共 1296字,需浏览 3分钟
· 2020-11-25
一、实现原理
使用正则匹配出文本内容中的所有关键词,在关键词外包一层内联标签,比如span或者font,通过innerHtml渲染文本。使用CSS控制插入的内联元素样式,并且记录下当前搜索到的结果是第几个,使用不同的样式来展示。
江畔何人初见<font style="background: #ff9632">月font>?江<font style="background: #ffff00">月font>何年初照人?
接下来会介绍一下组件vue-search-highlight的使用,然后给出Vue中的搜索高亮的代码实现。
二、vue-search-highlight组件使用
组件功能如下:
关键词高亮
关键词匹配总数以及当前关键词的索引(即是第几个搜索结果)
查找上一个、下一个功能,调用相应函数即可跳到上一个或者下一个
// 如果使用yarn
yarn add vue-search-highlight
// 如果使用npm
npm install vue-search-highlight
vue-search-highlight本身是一个组件,在需要搜索高亮的页面里引入后,像正常的组件一样使用即可。
import SearchHighlight from 'vue-search-highlight'
// 注册为子组件
components: {
'search-highlight': SearchHighlight
},
组件有两个重要的数据,即搜索匹配数量和当前关键词索引,会通过$emit弹射出来,如果需要展示搜索索引和匹配总数(比如 3 / 16),你可以监听组件的这两个事件:
你可以通过ref引用组件,直接调用组件内部的一些方法:
class="search-highlight"
ref="search"
"currentChange" -change=
"matchCountChange" -count-change=
:content="content"
:keyword="keyword">
三、组件代码实现
class="search-highlight" v-html="contentShow">
评论
文本嵌入、文本分类和语义搜索
在实践中使用大型语言模型(LLM)中,RAG 的一个关键部分是使用文本嵌入从知识库中自动检索相关信息。在这里,我将更深入地讨论文本嵌入,并分享两个简单(但功能强大)的应用:文本分类和语义搜索。ChatGPT 吸引了全世界对人工智能及其潜力的想象。ChatGPT 的聊天界面是这一影响的关键因素,它使人
大邓和他的Python
0
5G RedCap贯通行动政策文件发布,这些关键词值得关注
作者:赵小飞物联网智库 原创近日,工信部发布了《关于开展2024年度5G轻量化(RedCap)贯通行动的通知》,从标准、网络、芯片模组、终端、应用、安全、保障7大方面采取具体措施,并给出明确目标,在政策层面对5G RedCap进一步发展提供保障。RedCap承担着5G物联网连接数增长的重要任务,但同
物联网智库
0
【第124期】Vue 3 组合式 API 的瑞士军刀(VueUse)
概述 今天,我们要深入探索一个强大的工具集——VueUse。它为 Vue 3 的组合式 API(Composition API)提供了超过 200 个实用函数,让你的开发工作更加得心应手。官方网站:https://vueuse.org/VueUse 是什么?VueUse 的官方网站是 https:
前端微服务
0
可以搜索任何漫画和小说资源!是任何漫画与小说资源,你想要的都有……
大家好,我是致力于分享有趣、有用姿势(是知识)的贤小弟! 本次分享资源有点牛13,它既可以浏览漫画,也可以阅读小说,几乎你想要看的漫画和小说都有。我们可以把它看作是一个搜索平台,只要输...
杨数Tos
0
为什么defineProps宏函数不需要从vue中import导入?
本文约4000+字,整篇阅读大约需要10分钟。前言我们每天写vue代码时都在用defineProps,但是你有没有思考过下面这些问题。为什么defineProps不需要import导入?为什么不能在非setup顶层使用defineProps?defineProps...
前端Q
0
一个 Python 的轻量级搜索工具 -- Whose
?我的小册 40章+教程:(小白零基础用Python量化股票分析小册) ,目前已经300多人订阅来源丨网络本文将简单介绍 Python 中的一个轻量级搜索工具 Whoosh,并给出相应的使用示例代码。# Whoosh 简介Whoosh 由 Matt Chapu...
菜鸟学Python
0
前端开始“锈化”?Vue团队开源JS打包工具:基于Rust、速度极快、尤雨溪主导
转自:OSC开源社区(ID:oschina2013)Vue 团队已正式开源 Rolldown —— 基于 Rust 的 JavaScrip 打包工具。Rolldown 是使用 Rust 开发的 Rollup 替代品,它提供与 Rollup 兼容的应用程序接口和插件接口,但在功...
开源前哨
0
前端开始“锈化”?Vue团队开源JS打包工具:基于Rust、速度极快、...
转自: OSC开源社区 Vue 团队已正式 开源 Rolldown —— 基于 Rust 的 JavaScrip 打包工具。 Rolldown 是使用 Rust 开发的 Rollup 替代品,它提供与 Rollup 兼容的应用程序接口和插件接口,但在功能范围上更类似于 es...
前端大学
0