0、
<view class="historyPackage" v-if="histotyArrNodes && histotyArrNodes.length > 0">
<!-- <rich-text v-for="(item, index) in histotyArrNodes" :key="index" :nodes="item.html" @tap.stop="choseNo" :data-text="item.content" class="search-history-no"></rich-text> -->
<rich-text v-for="(item, index) in histotyArrNodes" :key="index" :nodes="item" @tap.stop="choseNo" class="search-history-no"></rich-text>
</view>
1、异步
async computedHistoryArrNodes() {
const promises = this.histotyArr.map(item => {
const res = item.match(new RegExp(`(.*)(${this.inpVal})(.*)`))
let str = item
if (res) {
const [_, prefix = '', content = '', suffix = ''] = res
str = `<span>${prefix}<span style="color: #FABE00;">${content}</span>${suffix}</span>`
}
return new Promise(resolve => {
parse(str, (err, html) => {
resolve(html)
})
resolve(str)
})
})
const nodes = await Promise.all(promises)
this.histotyArrNodes = nodes
},
2、同步
computedHistoryArrNodesMethod() {
let nodes = []
this.histotyArr.forEach(item => {
const res = item.match(new RegExp(`(.*)(${this.inpVal})(.*)`))
let str = item
if (res) {
const [_, prefix = '', content = '', suffix = ''] = res
str = `<span>${prefix}<span style="color: #FABE00;">${content}</span>${suffix}</span>`
}
parse(str, (err, html) => {
if (!err) {
nodes.push(html)
}
})
nodes.push(str)
})
this.histotyArrNodes = nodes
},
