共计 796 个字符,预计需要花费 2 分钟才能阅读完成。
问题形容
需要:咱们搜寻某个关键字,后端返回给咱们一个字符串,这个字符串中蕴含咱们搜寻的关键字,咱们须要把这个字符串中的关键字局部加上高亮成果(相似于百度搜寻关键字高亮的成果)。咱们先看一下,大抵相似的效果图:
如上图所示,需要很简略,就是关键字高亮。
思路剖析
解决形式有两种,第一种就是进行字符串的切割,把关键字切出来,加上一个色彩。这种形式上一篇文章对于字符串的办法整顿的文章曾经说过了,不赘述,详情可点击链接跳转瞅瞅。
附上地址:https://segmentfault.com/a/11…
接下来咱们说第二种形式,应用 v -html 指令加上字符串的替换办法,话不多说,上代码。
<template>
<div id="app">
<div>
<span v-html="highLight(title)">{{title}}</span>
</div>
</div>
</template>
<script>
export default {data() {
return {
title:"五百年前孙悟空大闹天宫",
searchWord:"孙悟空"
};
},
methods: {highLight(title){
// 如果题目中蕴含,关键字就替换一下
if(title.includes(this.searchWord)){
title = title.replace(
this.searchWord,
// 这里是替换成 html 格局的数据,最好再加一个款式权重,保险一点
'<font style="color:red!important;">'+ this.searchWord +'</font>'
)
return title
}
// 不蕴含的话还用这个
else{return title}
}
},
};
</script>
代码效果图:
DOM 元素审查
总结
v-html 如同平时不怎么用到这个 vue 的指令,不过实际上在某些场景下,应用 v -html 可能很好的解决问题
正文完