按照惯例,小菜先将写好的demo放上去。这里将内容写在一个文件,方便展示,如果小伙伴们写项目还是需要模块化好点。
在directive文件夹下创建一个highilight.js
文件,将下面代码复制进去
export default{
bind:function(el,binding){
if(binding.value == '') return ;
let word = el.innerText;
let light = '<code style ="color:#318af3;">'+ binding.value +'</code>'
let reg = new RegExp(binding.value, 'g');
el.innerHTML = word.replace(reg,light)
},
update:function(el,binding){
if(binding.value == '') return ;
let word = el.innerText;
let light = '<code style ="color:#318af3;">'+ binding.value +'</code>'
let reg = new RegExp(binding.value, 'g');
el.innerHTML = word.replace(reg,light)
}
}
在需要vue文件中指令引入
directives:{
highlight,
}
然后在dom
<span v-highlight:key = "匹配的关键字">11111111111111111</span>