vue中$set的使用(結(jié)合在實際應(yīng)用中遇到的坑)
最近在開發(fā)過程中遇到一個問題。在節(jié)點上面寫點擊事件時,點擊事件不執(zhí)行。代碼如下:
<!-- 操作 -->
<el-table-column label="操作">
<template slot-scope="scope">
<span class="poi icon-hover f16 mr20" @click='scope.row.edit=!scope.row.edit'>
<svg-icon :icon-class="scope.row.edit?'icon_edit_outline':'icon_save'"></svg-icon>
</span>
<span class="poi icon-hover f16">
<svg-icon icon-class="icon_delete"></svg-icon>
</span>
</template>
</el-table-column>
<!-- 操作 -->
這里面的click事件一直不執(zhí)行,一開始以為是點擊事件沒寫對一直在找原因,后面突然想到會不會是數(shù)據(jù)不同步的原因的,因為edit字段是自己添加進(jìn)去的字段,如下:
export default {
name: 'strategic',
data() {
return {
tableData: [{
'pp_id': 4,
'brand_name': '1414',
'project_name': '得意',
'description': '的u會回來會',
'publish_time': '2018-07-23',
'is_used': 0
}]
}
},
components: { },
computed: {
},
created() {
this.initTableData()
},
methods: {
initTableData() {
this.tableData.forEach(element => {
element.edit = false
})
}
}
}
之后我直接在數(shù)據(jù)里面加上edit字段,發(fā)現(xiàn)是能夠同步數(shù)據(jù)的,代碼如下:
data() {
return {
tableData: [{
'pp_id': 4,
'brand_name': '1414',
'project_name': '1414',
'description': '7588888888',
'publish_time': '2018-07-23',
'is_used': 0,
'edit': false
}]
}
}
原來是在我們使用vue進(jìn)行開發(fā),當(dāng)生成vue示例后,再次給數(shù)據(jù)賦值時,有時候并不能自動更新到數(shù)據(jù)上去,這時候我們就要通過$set來解決這個問題,解決代碼如下:
initTableData() {
this.tableData.forEach(element => {
this.$set(element, 'edit', false)
})
}
至此就解決啦。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
解決vue watch數(shù)據(jù)的方法被調(diào)用了兩次的問題
這篇文章主要介紹了解決vue watch數(shù)據(jù)的方法被調(diào)用了兩次的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11
VUE 無限層級樹形數(shù)據(jù)結(jié)構(gòu)顯示的實現(xiàn)
在做項目中,會遇到一些樹形的數(shù)據(jù)結(jié)構(gòu),常用在左側(cè)菜單導(dǎo)航,本文就介紹一下如何實現(xiàn),感興趣的可以了解一下2021-07-07
解決echarts圖表使用v-show控制圖表顯示不全的問題
這篇文章主要介紹了解決echarts圖表使用v-show控制圖表顯示不全的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07
vue項目如何監(jiān)聽localStorage或sessionStorage的變化
這篇文章主要介紹了vue 項目如何監(jiān)聽localStorage或sessionStorage的變化,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下2021-01-01

