VUEは、キーワードによる検索の強調表示を実現します

ニーズは二つの問題に対処するように、そこに検索キーワードの既存のリストの需要があり、キーワードのリストに関連するキーワードを含むデータ項目を表示して強調しました。

1.検索キーワードフィルタリングリストデータ

2.各リストには、キーを強調します

PS:この問題に基づいて、オブジェクトの配列は、他のタイプのデータは、この考えを参照することができます。

検索キーワード:フィルタデータは、検索を聞く以外の何物でも非常に単純ではありません、あなたは以下のコードを貼り付け、ソースデータをフィルタリングすることができます。

1 CONST探索= この.search
 2  であれば(検索){
 3       .showdata = この .copyshowdata.filter(データ=> {
 4           リターン Object.keys(データ).some(キー=> {
 5               リターン文字列(データ[キー])のindexOf(検索)> -1
 6          })
 7      })       
 8 } {
 9      この .showdata = これは.copyshowdata
 10 }        

showdataがページに表示され、copyshowdataは、それが何もしない、復元リストを使用し、showdataコピーです。

上記の検索は、時計モニタ値変更処理は、計算showdataプロパティを使用して計算することができる使用することです。


ハイライトキーワード:showDataアイデアが横断されるが、各項目の値は、使用して、定期的なマッチング(また、指定した項目に一致する)である<スパンクラス=「ハイライトテキストを 」> </ span>の検索を置き換えます

1つの ハイライト(){
 2          CONST =サーチこの.searchを
 3           .showdata = この .showdata.map(項目=> {
 4            (LETキーアイテム){
 5              IF(キー=== 'Issuecontent' ){
 6                LET = replaceReg 新しい新しい正規表現(検索'G')//が定期的にキーと一致する
。7                + +検索'<スパンクラス= "テキストのハイライト">' ReplaceString =ましょう'</ span>の' // 代替V-HTMLを強調値
8                項目[+キー'-highlights'] =項目[キー] .replace(replaceReg、replaceString)// 交換を開始する
。9              }
 10            }
 11            リターン項目
 12である         })
 13です        }

V-HTML = "項目[キーハイライト]" を使用すると、ページのレンダリング

スタイルもレンダリング後別々に処理する必要があり、そうでないスタイルが有効になりません、親は、上記に追加することはできません、と範囲を削除します。

1  <スタイルのlang = "SCSS">
 2    .highlightsテキスト {
 3  #1 ff51344    }
 5  </スタイル>

レンダリングを投稿:

 

おすすめ

転載: www.cnblogs.com/licurry/p/11589985.html