react中实现搜索结果中关键词高亮显示


Posted in Javascript onJuly 31, 2018

网上看到很多js实现的关键词高亮显示,方法都是一个道理,先获取要替换的文字区域,然后在用正则匹配到关键词,并进行替换。

react中实现起来似乎更简单一些。

我这里的需求是通过搜索框搜索出新闻列表,在已经获取到新闻列表数据中使用filter函数,获取到每一个新闻的title,并定义关键词正则,返回替换后的样式,react不能直接解析带html标签的字符串,方法如下:

render() {
  const newsList=this.state.newsList;
  if(this.props.type==='tag'||this.props.type==='search'){
   let keyword=this.props.id; //这里是父组件传过来的关键词
   newsList.filter((value,index) => { //使用filter函数过滤新闻列表数据
    var re =new RegExp(keyword,"g"); //定义正则
    value.title=value.title.replace(re, `<span class="keyword">${keyword}</span>`); //进行替换,并定义高亮的样式
   })
  }
  
  return (
   <div>
    {newsList.map((value,index) => {
     return (<NewsListItem news={value} key={index} />) //把新闻传递给新闻列表的单个新闻组件
     })
    }
    <div className="btn-more transition" onClick={this.fetchMoreList}>{this.state.loadingText}</div>
   </div>
  );
 }

NewsListItem组件渲染title:

<div className="item-title" dangerouslySetInnerHTML = {{ __html:news.title }}></div>

react中实现搜索结果中关键词高亮显示

react中实现搜索结果中关键词高亮显示

总结

以上所述是小编给大家介绍的react中实现搜索结果中关键词高亮显示,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
js函数与php函数的区别实例浅析
Jan 12 Javascript
jquery实现textarea 高度自适应
Mar 11 Javascript
微信小程序 实例应用(记账)详解
Sep 28 Javascript
AngularJS ui-router (嵌套路由)实例
Mar 10 Javascript
Angularjs 双向绑定时字符串的转换成数字类型的问题
Jun 12 Javascript
BootStrap 页签切换失效的解决方法
Aug 17 Javascript
360提示[高危]使用存在漏洞的JQuery版本的解决方法
Oct 27 jQuery
jQuery图片查看插件Magnify开发详解
Dec 25 jQuery
JS中用EL表达式获取上下文参数值的方法
Mar 28 Javascript
vue-router权限控制(简单方式)
Oct 29 Javascript
Angular进行简单单元测试的实现方法实例
Aug 16 Javascript
Vue中引入svg图标的两种方式
Jan 14 Vue.js
vue2.0页面前进刷新回退不刷新的实现方法
Jul 31 #Javascript
Node.js log4js日志管理详解
Jul 31 #Javascript
jQuery 实现倒计时天,时,分,秒功能
Jul 31 #jQuery
JS实现移动端触屏拖拽功能
Jul 31 #Javascript
JavaScript new对象的四个过程实例浅析
Jul 31 #Javascript
Vue 路由 过渡动效 数据获取方法
Jul 31 #Javascript
JS实现判断图片是否加载完成的方法分析
Jul 31 #Javascript
You might like
php实现可运算的验证码
2015/11/10 PHP
浅谈PHP的反射机制
2016/12/15 PHP
jQuery 版本的文本输入框检查器Input Check
2009/07/09 Javascript
电子商务网站上的常用的js放大镜效果
2011/12/08 Javascript
修改jQuery Validation里默认的验证方法
2012/02/14 Javascript
一款jquery特效编写的大度宽屏焦点图切换特效的实例代码
2013/08/05 Javascript
js data日期初始化的5种方法
2013/12/29 Javascript
JS验证IP,子网掩码,网关和MAC的方法
2015/07/02 Javascript
JavaScript中利用Array和Object实现Map的方法
2015/07/27 Javascript
一文让你彻底搞清楚javascript中的require、import与export
2017/09/24 Javascript
Vue通过getAction的finally来最大程度避免影响主数据呈现问题
2020/04/24 Javascript
jquery更改元素属性attr()方法操作示例
2020/05/22 jQuery
pyqt和pyside开发图形化界面
2014/01/22 Python
python中__call__方法示例分析
2014/10/11 Python
Python入门篇之列表和元组
2014/10/17 Python
Python递归遍历列表及输出的实现方法
2015/05/19 Python
Python过滤列表用法实例分析
2016/04/29 Python
Python打印“菱形”星号代码方法
2018/02/05 Python
python调用Matplotlib绘制分布点并且添加标签
2018/05/31 Python
详解python分布式进程
2018/10/08 Python
Python3 无重复字符的最长子串的实现
2019/10/08 Python
PyTorch中Tensor的数据统计示例
2020/02/17 Python
pytorch cuda上tensor的定义 以及减少cpu的操作详解
2020/06/23 Python
Django视图类型总结
2021/02/17 Python
美国最大网上鞋店:Zappos
2016/07/25 全球购物
如何将整数int转换成字串String
2014/03/21 面试题
自荐信包含哪些内容
2013/10/30 职场文书
化工专业推荐信范文
2013/11/28 职场文书
优秀老师事迹材料
2014/02/05 职场文书
1000字打架检讨书
2014/11/03 职场文书
父亲节活动总结
2015/02/12 职场文书
经营场所证明范本
2015/06/19 职场文书
2016年教师党员承诺书范文
2016/03/24 职场文书
ES6 解构赋值的原理及运用
2021/05/25 Javascript
Python爬虫中urllib3与urllib的区别是什么
2021/07/21 Python
教你使用Ubuntu搭建DNS服务器
2022/09/23 Servers