【vue】vue2.0及后v-html中过滤器的使用

在Vue2.x中,作者移除了在模板中直接使用管道符号(|)定义过滤器的功能。为实现类似功能,可以采用全局方法、计算属性或在组件的$options.filters中定义。全局方法示例:通过Vue.prototype扩展关键词高亮功能。计算属性示例:在模板中使用计算属性来处理数据。$options.filters示例:在组件内部定义filters对象,如关键词替换功能。

说明:vue1.x中是可以直接加“|”来使用过滤器,但是在vue2.x中作者移除了这种写法。

解决方法:

1:全局方法(推荐): <div v-html="keywoeds(str1,key1)"></div>

Vue.prototype.keywords= function(str,key){
      let regExp = new RegExp(key, "g");
      let newStr = "";
      newStr = str.replace(regExp, `<font color='red'>${key}</font>`);
      return newStr;
 };

2:computed 属性: 

<div>{{ keywords() }}</div>

3:$options.filters(推荐):

<div class="title" v-html="$options.filters.keywords(item.title, searchValue)" ></div>

 filters: {
    keywords: function (str, key) {
      let regExp = new RegExp(key, "g");
      console.log(regExp);
      let newStr = "";
      newStr = str.replace(regExp, `<font color='red'>${key}</font>`);
      return newStr;
    },
  },

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值