Vue3使用v-html實(shí)現(xiàn)文本關(guān)鍵詞變色處理
首先看應(yīng)用場(chǎng)景
這有一段文本內(nèi)容,是項(xiàng)目的簡(jiǎn)介,想要實(shí)現(xiàn)將文本中的關(guān)鍵詞進(jìn)行變色處理
有如下關(guān)鍵詞
實(shí)現(xiàn)思路
遍歷文本內(nèi)容,找到關(guān)鍵詞,并使用某種方法更改其字體樣式。經(jīng)過搜尋資料決定采用v-html實(shí)現(xiàn),但是v-html本身并不安全,有安全性風(fēng)險(xiǎn)且影響性能,所以謹(jǐn)慎使用。
想詳細(xì)了解的同學(xué)的同學(xué)可以看一下官網(wǎng)的介紹
實(shí)現(xiàn)代碼
//存儲(chǔ)結(jié)果 const introduction_content = ref('') //定義函數(shù) const updateColor = function (content: string) { let keywords = ['導(dǎo)師:', '關(guān)聯(lián)比賽:', '獲得成就:', '未來發(fā)展:', '獎(jiǎng)金:'] const result = ref(content) // 初始值為原始內(nèi)容 //本項(xiàng)目的需求是根據(jù)項(xiàng)目狀態(tài)動(dòng)態(tài)變更顏色 const color = ref( detailData.value!.status == 0 ? 'rgba(7, 193, 96, 1)' : detailData.value!.status == 1 ? 'rgba(250, 157, 59, 1)' : detailData.value!.status == 2 ? 'rgba(250, 81, 81, 0.5)' : '' ) // 遍歷每個(gè)關(guān)鍵詞并進(jìn)行替換 keywords.forEach((keyword) => { const regex = new RegExp(keyword, 'gi') // 每次替換都基于當(dāng)前的 result.value result.value = result.value.replace( regex, `<span style="color: ${color.value};font-size:15px;">${keyword}</span>` ) }) introduction_content.value = result.value }
需要注意的是,如果需要更改字體大小,不能使用rpx等,需要使用px
可以輸出introduction_content看一下,結(jié)果如下
xx項(xiàng)目簡(jiǎn)介 <span style="color: rgba(7, 193, 96, 1);font-size:15px;">導(dǎo)師:</span>?xxx <span style="color: rgba(7, 193, 96, 1);font-size:15px;">關(guān)聯(lián)比賽:</span>?建模 <span style="color: rgba(7, 193, 96, 1);font-size:15px;">獎(jiǎng)金:</span>?100
到此這篇關(guān)于Vue3使用v-html實(shí)現(xiàn)文本關(guān)鍵詞變色處理的文章就介紹到這了,更多相關(guān)Vue3 v-html關(guān)鍵詞變色內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決vue項(xiàng)目nginx部署到非根目錄下刷新空白的問題
今天小編就為大家分享一篇解決vue項(xiàng)目nginx部署到非根目錄下刷新空白的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-09-09關(guān)于keep-alive路由多級(jí)嵌套不生效的解決方案
本文主要介紹了關(guān)于keep-alive路由多級(jí)嵌套不生效的解決方案,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03使用Vue3和ApexCharts實(shí)現(xiàn)交互式3D折線圖
ApexCharts 是一個(gè)功能強(qiáng)大的 JavaScript 庫(kù),用于創(chuàng)建交互式、可定制的圖表,在 Vue.js 中,它可以通過 vue3-apexcharts 插件輕松集成,本文給大家介紹了使用Vue3和ApexCharts實(shí)現(xiàn)交互式3D折線圖,需要的朋友可以參考下2024-06-06如何利用SpringBoot與Vue3構(gòu)建前后端分離項(xiàng)目
在當(dāng)前的互聯(lián)網(wǎng)時(shí)代,前后端分離架構(gòu)已經(jīng)成為構(gòu)建應(yīng)用系統(tǒng)的主流方式,本文將詳細(xì)介紹如何利用 SpringBoot 與 Vue3 構(gòu)建一個(gè)前后端分離的項(xiàng)目,感興趣的小伙伴可以了解下2025-04-04vue使用JSON編輯器:vue-json-editor詳解
文章介紹了如何在Vue項(xiàng)目中使用JSON編輯器插件`vue-json-editor`,包括安裝、引入、注冊(cè)和使用示例,通過這些步驟,用戶可以在Vue應(yīng)用中輕松實(shí)現(xiàn)JSON數(shù)據(jù)的編輯功能,文章最后呼吁大家支持腳本之家2025-01-01vue+elementUI實(shí)現(xiàn)點(diǎn)擊左右箭頭切換按鈕功能
這篇文章主要介紹了vue+elementUI實(shí)現(xiàn)點(diǎn)擊左右箭頭切換按鈕功能,樣式可以根據(jù)自己需求改動(dòng),感興趣的朋友可以參考下實(shí)現(xiàn)代碼2024-05-05