vue 数据从父组件传递到子组件,子组件也接收到了数据,加上字体高亮后渲染失败,去掉高亮后渲染正常

vue 数据从父组件传递到子组件,子组件也接收到了数据,加上字体高亮后渲染失败,去掉高亮后渲染正常

// 父组件    

// 接收表格数据

receiveArticleViewData(obj,keywords) {

this.article_obj = obj

this.$forceUpdate()

// `高亮`关键字 keywords

// console.log(keywords)

this.$nextTick(function () {

this.highLight(keywords)

})

},

// 高亮

highLight(keywords) {

let table_data = document.getElementById('table_data')

let tr = table_data.getElementsByTagName('tr')

let article = document.getElementById('article')

for (let i = 0; i < keywords.length; i++) {

let keyword = keywords[i]

let span1 = '<span style="color:red;font-weight: bold;">'

let span2 = '</span>'

let re = new RegExp(keyword, 'g')

let span = span1 + keyword + span2

for (let j = 0; j < tr.length; j++) {

tr[j].innerHTML = tr[j].innerHTML.replace(re, span)

}

// console.log(article.innerText)

// console.log('11111111111111111111111')

// 去掉下面这一行,正常渲染,article.innerText也显示数据正常传递,正常渲染

article.innerHTML = article.innerHTML.replace(re, span)

// 加上上面这一行,子组件数据传递正常,但是article.innerText显示还是之前的数据

}

},

// 子组件

watch: {

'article_obj': {

handler: function () {

console.log(this.article_obj)

// 这儿打印的是更新的数据

this.$forceUpdate()

}

},

},

以上是 vue 数据从父组件传递到子组件,子组件也接收到了数据,加上字体高亮后渲染失败,去掉高亮后渲染正常 的全部内容, 来源链接: utcz.com/p/936387.html

回到顶部