问题形容

需要:咱们搜寻某个关键字,后端返回给咱们一个字符串,这个字符串中蕴含咱们搜寻的关键字,咱们须要把这个字符串中的关键字局部加上高亮成果(相似于百度搜寻关键字高亮的成果)。咱们先看一下,大抵相似的效果图:

如上图所示,需要很简略,就是关键字高亮。

思路剖析

解决形式有两种,第一种就是进行字符串的切割,把关键字切出来,加上一个色彩。这种形式上一篇文章对于字符串的办法整顿的文章曾经说过了,不赘述,详情可点击链接跳转瞅瞅。

附上地址: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可能很好的解决问题