vue實現(xiàn)關(guān)鍵字高亮效果的示例代碼
這是啥子意思呢,就是類似于百度搜索,根據(jù)關(guān)鍵詞搜索結(jié)果,搜索結(jié)果中,與關(guān)鍵詞相同的字顯示紅色,僅此而已,沒有什么大的功能。簡單寫一下demo。
環(huán)境
我使用的是 vue3 + ts 的語法來寫,其實一個樣兒,關(guān)鍵代碼 js、ts 都可以,就一個方法,調(diào)用一下就可以了。
<template>
<div class="ed-con">
<el-input v-model="input" style="width: 240px" placeholder="Please input"/>
<p v-html="txt"></p>
</div>
</template>
<script setup lang="ts">
import {ref} from 'vue';
const input = ref('');
const txt = ref('在古老的小鎮(zhèn)邊緣,有一間被歲月溫柔撫摸過的木屋,它靜靜地佇立在一片絢爛的野花叢中。屋內(nèi),住著一位名叫蘇婉的女子,她擁有一雙能洞察人心的眼睛和一頭如夜色般深邃的長發(fā)。每天黃昏,蘇婉都會坐在窗邊,手捧一本泛黃的書,眼神時而凝重,時而溫柔,仿佛在與書中人物進行著跨越時空的對話。\n' +
'\n' +
'某天,一陣突如其來的風(fēng)雨打破了小鎮(zhèn)的寧靜,也吹散了蘇婉心中的平靜。一位渾身濕透的青年男子闖入了她的世界,帶著一身未解之謎。蘇婉望著他,眼中閃過一抹不易察覺的光芒,她知道,自己的生活從此將不再平凡。兩人在雨后的木屋里,圍繞著爐火,開始編織起一段關(guān)于尋找、救贖與愛的故事,而窗外的世界,正悄悄地為這段奇遇添上一抹神秘的色彩。')
</script>
<style scoped lang="scss">
.ed-con {
width: 100%;
height: 100%;
padding: 20px;
box-sizing: border-box;
::v-deep(.ed-highlight) {
color: red;
}
}
</style>
上面的代碼運行起來就是這樣的:

接下來就是怎么實現(xiàn)輸入框輸入數(shù)據(jù)之后,下面的文字中,與關(guān)鍵字相同的文字高亮成紅色的,很簡單,就一個方法:
const highlightText = () => {
if (!input.value) {
return txt.value;
}
const regex = new RegExp(`(${input.value})`, 'gi');
const highlightedText = txt.value.replace(regex, '<span class="ed-highlight">$1</span>');
return highlightedText;
}
然后再調(diào)用一下這個方法就可以了:
<p v-html="highlightText()"></p>
就是把關(guān)鍵字給用標(biāo)簽包裹起來,然后給這個標(biāo)簽設(shè)置一個 class 樣式,然后通過 css 代碼,給這個 class 加上一個紅色的樣式,就這樣:

到此這篇關(guān)于vue實現(xiàn)關(guān)鍵字高亮效果的示例代碼的文章就介紹到這了,更多相關(guān)vue關(guān)鍵字高亮內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue excel上傳預(yù)覽和table內(nèi)容下載到excel文件中
這篇文章主要介紹了vue excel上傳預(yù)覽和table內(nèi)容下載到excel文件中,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-12-12
一文帶你了解什么是Vue的前端微服務(wù)架構(gòu)(Micro Frontends)
微前端架構(gòu)是一種將大型前端應(yīng)用拆分為多個小型、獨立的前端應(yīng)用的架構(gòu)風(fēng)格,每個小型前端應(yīng)用都可以獨立部署、獨立開發(fā)和獨立運行,下面我們就來學(xué)習(xí)一下它的相關(guān)使用吧2023-11-11
Vite+TS+Vue開啟eslint和prettier規(guī)范及校驗方式
這篇文章主要介紹了Vite+TS+Vue開啟eslint和prettier規(guī)范及校驗方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06

