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 相关文章推荐
Prototype Date对象 学习
Jul 12 Javascript
EXTJS FORM HIDDEN TEXTFIELD 赋值 使用value不好用的问题
Apr 16 Javascript
javascript实现颜色渐变的方法
Oct 30 Javascript
浅谈javascript语法和定时函数
May 03 Javascript
ajax在兼容模式下失效的快速解决方法
Mar 22 Javascript
利用AJAX实现WordPress中的文章列表及评论的分页功能
May 17 Javascript
jQuery中animate的几种用法与注意事项
Dec 12 Javascript
详解微信小程序与内嵌网页交互实现支付功能
Oct 22 Javascript
浅谈webpack性能榨汁机(打包速度优化)
Jan 09 Javascript
浅谈vuex的基本用法和mapaction传值问题
Nov 08 Javascript
javascript实现的图片预览和上传功能示例【兼容IE 9】
May 01 Javascript
vue实现简单的登录弹出框
Oct 26 Javascript
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从零开始打造自己的MVC框架之类的自动加载实现方法详解
2019/06/03 PHP
Ext 表单布局实例代码
2009/04/30 Javascript
javascript 内存回收机制理解
2011/01/17 Javascript
10款非常有用的 Ajax 插件分享
2012/03/14 Javascript
javascript/jquery获取地址栏url参数的方法
2014/03/05 Javascript
javascript操作excel生成报表示例
2014/05/08 Javascript
js中的caller和callee属性介绍和例子
2014/06/07 Javascript
js图片轮播特效代码分享
2015/09/07 Javascript
全面解析Bootstrap中tab(选项卡)的使用方法
2016/06/06 Javascript
AngularJS入门教程中SQL实例详解
2016/07/27 Javascript
理解javascript中的Function.prototype.bind的方法
2017/02/03 Javascript
BootStrap注意事项小结(五)表单
2017/03/10 Javascript
利用js定义一个导航条菜单
2017/03/14 Javascript
通过jquery.cookie.js实现记住用户名、密码登录功能
2018/06/20 jQuery
vue router导航守卫(router.beforeEach())的使用详解
2019/04/19 Javascript
jQuery事件绑定和解绑、事件冒泡与阻止事件冒泡及弹出应用示例
2019/05/13 jQuery
Vue快速实现通用表单验证的示例代码
2020/01/09 Javascript
Python中请使用isinstance()判断变量类型
2014/08/25 Python
Python3中多线程编程的队列运作示例
2015/04/16 Python
windows下python连接oracle数据库
2017/06/07 Python
numpy向空的二维数组中添加元素的方法
2018/11/01 Python
python和c语言的主要区别总结
2019/07/07 Python
python中matplotlib实现随鼠标滑动自动标注代码
2020/04/23 Python
canvas绘制表情包的示例代码
2018/07/09 HTML / CSS
HTML5中外部浏览器唤起微信分享
2020/01/02 HTML / CSS
moosejaw旗下的户外商品促销网站:Mountain Steals
2017/02/27 全球购物
欧洲最大的球衣网上商店:Kitbag
2017/11/11 全球购物
英国在线女鞋目的地:SIMMI
2018/12/27 全球购物
雅虎笔试题(字符串操作)
2015/03/24 面试题
酒店值班经理的工作职责范本
2014/02/18 职场文书
家具公司总经理岗位职责
2014/07/08 职场文书
乡镇群众路线专项整治方案
2014/11/03 职场文书
失职检讨书大全
2015/01/26 职场文书
高中班主任培训心得体会
2016/01/07 职场文书
深入探讨opencv图像矫正算法实战
2021/05/21 Python
JavaScript设计模式之原型模式详情
2022/06/21 Javascript