中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

珠寶網(wǎng)站建設(shè)平臺分析報告網(wǎng)站構(gòu)建的基本流程

珠寶網(wǎng)站建設(shè)平臺分析報告,網(wǎng)站構(gòu)建的基本流程,游戲網(wǎng)站建設(shè)平臺,做網(wǎng)站去哪里找廣告主1.js正則replaceAlldangerouslySetInnerHTML{{ __html: xxx }}危險屬性 步驟最簡單,但是是危險屬性,不推薦使用,項目中實在沒有頭緒,可以使用它應(yīng)急 通過useMemo計算得到新的狀態(tài)值,賦值給dangerouslySetInnerHTML屬性的__html 關(guān)鍵代碼: const [state1, setState1] useSt…

1.js正則replaceAll+dangerouslySetInnerHTML={{ __html: xxx }}危險屬性

步驟最簡單,但是是危險屬性,不推薦使用,項目中實在沒有頭緒,可以使用它應(yīng)急

通過useMemo計算得到新的狀態(tài)值,賦值給dangerouslySetInnerHTML屬性的__html

關(guān)鍵代碼:

const [state1, setState1] = useState('我愛中國,中國愛我')const updateState1 = useMemo(() => {return state1.replaceAll('中國', '<span style="color:red;">中國</span>')}, [state1])<div dangerouslySetInnerHTML={{ __html: updateState1 }}></div>

2.useMemo計算遍歷后將關(guān)鍵字替換為React標簽寫法(內(nèi)容為關(guān)鍵字),使用_.map渲染

(要不是replace不能轉(zhuǎn)換為React標簽,只支持字符串也不用這么麻煩)

關(guān)鍵代碼:

const updateState2 = useMemo(() => {return highlightPassword(state2, '_.map_')}, [state2])function highlightPassword(str0: any, key_prefix?: string) {const password = '中國';const pattern = new RegExp(`\\B(?=((${password})+)+(?!(${password})))`, 'g')return str0.replace(pattern, '||||').split('||||').map((item, index) => {const idx = item.indexOf(password)return <span key={key_prefix + index}>{idx >= 0? <><span style={{ color: 'red' }}>{item.substring(0, password.length)}</span>{item.substring(password.length, item.length)}</>: item}</span>});}<p>map遍歷children元素:</p>{_.map(updateState2, (child) => {return child})}

3.遍歷后將關(guān)鍵字替換為React標簽寫法(內(nèi)容為關(guān)鍵字),使用ReactDOM.render方法插入到指定元素中

關(guān)鍵代碼:

const Test = () => {const [state2, setState2] = useState<any>('我愛中國,中國中國愛我')useEffect(() => {// 遍歷將關(guān)鍵字換成react寫法的標簽,使用ReactDOM.render方法渲染到頁面上const str = highlightPassword(state2, 'ReactDOM.render_')ReactDOM.render(<div>{str}</div>, document.getElementsByClassName('my-highlight-test')[0])}, [state2])function highlightPassword(str0: any, key_prefix?: string) {const password = '中國';const pattern = new RegExp(`\\B(?=((${password})+)+(?!(${password})))`, 'g')return str0.replace(pattern, '||||').split('||||').map((item, index) => {const idx = item.indexOf(password)return <span key={key_prefix + index}>{idx >= 0? <><span style={{ color: 'red' }}>{item.substring(0, password.length)}</span>{item.substring(password.length, item.length)}</>: item}</span>});}<p>ReactDOM.render方法:</p><div className="my-highlight-test"></div>

完整代碼示例:?

import React, { useEffect, useMemo, useState } from 'react'
import ReactDOM from 'react-dom';
import _ from 'lodash';const Test = () => {const [password,] = useState('中國')const [state1, setState1] = useState('我愛中國,中國愛我')const [state2, setState2] = useState<any>('我愛中國,中國中國愛我')useEffect(() => {// 遍歷將關(guān)鍵字換成react寫法的標簽,使用ReactDOM.render方法渲染到頁面上const str = highlightPassword(state2, 'ReactDOM.render_')ReactDOM.render(<div>{str}</div>, document.getElementsByClassName('my-highlight-test')[0])}, [state2])const updateState1 = useMemo(() => {return state1.replaceAll(password, str => `<span style="color:red;">${str}</span>`)}, [state1])const updateState2 = useMemo(() => {return highlightPassword(state2, '_.map_')}, [state2])useEffect(() => {setTimeout(() => {setState1('哈哈哈,中國萬歲,萬歲萬萬歲,中國加油!')setState2('哈哈哈,中國中國萬歲,萬歲萬萬歲,中國中國加油!愛你中國!')}, 2000)}, [])function highlightPassword(str0: any, key_prefix?: string) {const pattern = new RegExp(`\\B(?=((${password})+)+(?!(${password})))`, 'g')return str0.replace(pattern, '||||').split('||||').map((item, index) => {const idx = item.indexOf(password)return <span key={key_prefix + index}>{idx >= 0? <><span style={{ color: 'red' }}>{item.substring(0, password.length)}</span>{item.substring(password.length, item.length)}</>: item}</span>});}return (<div><p>dangerouslySetInnerHTML方式:</p><div dangerouslySetInnerHTML={{ __html: updateState1 }}></div><p>map遍歷children元素:</p>{_.map(updateState2, (child) => {return child})}<p>ReactDOM.render方法:</p><div className="my-highlight-test"></div></div>)
}export default Test

顯示效果:

初始化頁面時:

2cacd40d3968477585d8674b3ff964db.png

2s后(模擬異步請求數(shù)據(jù))顯示:

73bd463cfc634e0f894bd4114ae05331.png

http://www.risenshineclean.com/news/54377.html

相關(guān)文章:

  • 連鎖酒店網(wǎng)站建設(shè)網(wǎng)站優(yōu)化推廣方案
  • 網(wǎng)站開發(fā)工具安全性能怎樣制作一個網(wǎng)站
  • 網(wǎng)站開發(fā)技術(shù)有廣州疫情最新數(shù)據(jù)
  • 做模具的網(wǎng)站sem競價推廣怎么做
  • 客戶網(wǎng)站回訪長春百度快速優(yōu)化
  • 網(wǎng)站開發(fā)用c語言嗎網(wǎng)站網(wǎng)絡(luò)營銷公司
  • 為什么 要建設(shè)網(wǎng)站掃一掃識別圖片
  • 網(wǎng)站制作策劃書最新域名8xgmvxyz
  • 長春專業(yè)做網(wǎng)站公司排名手機優(yōu)化大師官方版
  • 網(wǎng)站通欄南京seo網(wǎng)站管理
  • 基于jsp網(wǎng)站開發(fā)與實現(xiàn)和生活app下載安裝最新版
  • 好用的免費建站網(wǎng)站百度網(wǎng)絡(luò)營銷中心
  • 在靜安正規(guī)的設(shè)計公司網(wǎng)站個人博客登錄入口
  • 卡通網(wǎng)站建設(shè)濟南頭條新聞熱點
  • 正規(guī)的培訓(xùn)行業(yè)網(wǎng)站開發(fā)seo關(guān)鍵詞如何布局
  • 在中國做博彩網(wǎng)站違法嗎seo網(wǎng)站優(yōu)化服務(wù)商
  • wap asp網(wǎng)站模板下載淘寶怎樣優(yōu)化關(guān)鍵詞
  • 個人網(wǎng)站建立教程網(wǎng)站建設(shè)黃頁免費觀看
  • 網(wǎng)站建設(shè)最好的公司網(wǎng)站域名費一年多少錢
  • 廣州網(wǎng)站優(yōu)化關(guān)鍵詞排名最新疫情新聞100字
  • 長治制作公司網(wǎng)站的公司百度免費推廣怎么操作
  • 可以做來電名片的網(wǎng)站seo高端培訓(xùn)
  • 怎么做網(wǎng)站首頁圖片不會失真云南今日頭條新聞
  • 內(nèi)容管理系統(tǒng)開源佛山網(wǎng)站建設(shè)十年樂云seo
  • 一個好的網(wǎng)站應(yīng)該具有什么西安百度推廣競價托管
  • 舉例說明網(wǎng)絡(luò)營銷的概念小紅書seo排名帝搜軟件
  • 網(wǎng)站建設(shè)商務(wù)的術(shù)語怎么注冊網(wǎng)站平臺
  • wordpress安裝顯示404寧波優(yōu)化網(wǎng)站排名軟件
  • 可信賴的深圳網(wǎng)站建設(shè)百度seo霸屏軟件
  • 門戶網(wǎng)站建設(shè)方案文檔如何自己建立一個網(wǎng)站