react-highlight-words
https://github.com/bvaughn/re...
一个React组件,用处:在一段文本中高亮展示某些单词
源码思路
直接返回一个函数式组件
- 最重要是调用
findAll
函数,返回[{start: startIndex, end: endIndex, highlight: boolean}, {同样的结构}]
,将一段句子合理的划分为从前到后的高亮部分和未高亮部分 - 然后遍历
chunks
, 返回高亮和未高亮两种不同的DOM结构
==核心就是将高亮部分和未高亮部分通过数据结构(对象数组)进行标识和区分,便于后续的处理==
findAll
函数是highlight-words-core
模块提供的工具方法,所有后面会讲解这个模块。
/* @flow */
import { findAll } from 'highlight-words-core'
import PropTypes from 'prop-types'
import React from 'react'
Highlighter.propTypes = {
activeClassName: PropTypes.string,
activeIndex: PropTypes.number,
activeStyle: PropTypes.o