最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

elementUI的table表格改變數(shù)據(jù)不更新問題解決

 更新時(shí)間:2022年02月24日 10:50:16   作者:三個(gè)木馬人  
最近在做vue的項(xiàng)目時(shí)發(fā)現(xiàn)了一個(gè)問題,今天就來解決一下,本文主要介紹了elementUI的table表格改變數(shù)據(jù)不更新問題解決,感興趣的可以了解一下

預(yù)期效果:點(diǎn)擊輸入框旁邊的圖標(biāo),輸入框變?yōu)榭奢斎霠顟B(tài);這里控制輸入的 editable 字段不是 data 原有的屬性,也不是 data 賦值時(shí)就存在的字段。

在這里插入圖片描述

問題原因:在 Vue 實(shí)例創(chuàng)建時(shí),以及 data 賦值時(shí) editable 并未聲明,因此就沒有被Vue轉(zhuǎn)換為響應(yīng)式的屬性,自然就不會(huì)觸發(fā)視圖的更新。

解決方法:

1、給 data 賦值前把 editable 屬性添加到數(shù)組里

這里就不貼代碼了,大概思路就是:獲取到列表信息之后緩存在一個(gè)臨時(shí)數(shù)組里(不可以是 data 里面定義好的對象),循環(huán)遍歷列表信息,給每一條數(shù)據(jù)都添加一個(gè)屬性 editable 值為 false,然后再把處理過的列表信息賦值給 data 。

2、使用:key 或者 v-if

修改綁定在 table 上面的 key 值,可以觸發(fā) table 的重新渲染,這樣就可以把修改后的 data 在表格里面更新渲染。

<el-table :data="data" :key='num' stripe border>
	<el-table-column align="center" label="字段中文名稱">
		<template slot-scope="scope">
    		<div style="display: flex;">
    			<el-input :disabled='!scope.row.editable' style="margin-right: 10px;"></el-input>
    			<el-button @click='changeEdit(scope.row)' type='text' icon="el-icon-edit-outline"></el-button>
    		</div>
    	</template>
    </el-table-column>
</el-table>
export default{
	data(){
		return{
			num:0,
			data:[]
		}
	},
	methods:{
		changeEdit(row){
			//每次點(diǎn)擊圖標(biāo) key 自動(dòng)加一
			row.editable = true;
			num++;
		}
	}
}

這種方法有一個(gè)問題:給 table 添加一個(gè)默認(rèn)高度,這個(gè)時(shí)候數(shù)據(jù)比較多的話會(huì)出現(xiàn)滾動(dòng)條;當(dāng)滾動(dòng)條拉到下面,點(diǎn)擊圖標(biāo)讓對應(yīng)的輸入框可編輯,同時(shí)觸發(fā) table 渲染,滾動(dòng)條會(huì)回到頂部,想查看被操作的輸入框需要重新把滾動(dòng)條拉到最下面;這樣體驗(yàn)非常不好。如果有這樣的場景推薦使用下面的方法。

3、使用 $set

$set 可以讓動(dòng)態(tài)的給 data 添加響應(yīng)式的屬性,讓 editable 變?yōu)轫憫?yīng)式的,就可以直接觸發(fā)頁面更新。

<el-table :data="data" stripe border>
	<el-table-column align="center" label="字段中文名稱">
		<template slot-scope="scope">
    		<div style="display: flex;">
    			<el-input :disabled='!scope.row.editable' style="margin-right: 10px;"></el-input>
    			<el-button @click='changeEdit(scope.$index,scope.row)' type='text' icon="el-icon-edit-outline"></el-button>
    		</div>
    	</template>
    </el-table-column>
</el-table>
export default{
	data(){
		return{
			num:0,
			data:[]
		}
	},
	methods:{
		changeEdit(index,row){
			row.editable = true;
        	this.$set(this.data,index,row);
		}
	}
}

根據(jù)上面的方法延伸 :當(dāng) vue 能夠檢測到數(shù)組的變化,觸發(fā)更新。

changeEdit(index,row){
	row.editable = true;
    this.data.splice(1,0);
}

到此這篇關(guān)于elementUI的table表格改變數(shù)據(jù)不更新問題解決的文章就介紹到這了,更多相關(guān)element table數(shù)據(jù)不更新內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue中{{}},v-text和v-html區(qū)別與應(yīng)用詳解

    vue中{{}},v-text和v-html區(qū)別與應(yīng)用詳解

    這篇文章主要介紹了vue中{{}},v-text和v-html區(qū)別與應(yīng)用詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • 淺談vue自定義全局組件并通過全局方法 Vue.use() 使用該組件

    淺談vue自定義全局組件并通過全局方法 Vue.use() 使用該組件

    本篇文章主要介紹了vue自定義全局組件并通過全局方法 Vue.use() 使用該組件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Vue Router history模式的配置方法及其原理

    Vue Router history模式的配置方法及其原理

    這篇文章主要介紹了Vue Router history模式的配置方法及其原理,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-05-05
  • vue使用swiper實(shí)現(xiàn)中間大兩邊小的輪播圖效果

    vue使用swiper實(shí)現(xiàn)中間大兩邊小的輪播圖效果

    這篇文章主要介紹了vue使用swiper實(shí)現(xiàn)中間大兩邊小的輪播圖效果,本文分步驟通過實(shí)例代碼講解的非常詳細(xì),需要的朋友可以參考下
    2019-11-11
  • 解決Vue路由導(dǎo)航報(bào)錯(cuò):NavigationDuplicated:?Avoided?redundant?navigation?to?current?location

    解決Vue路由導(dǎo)航報(bào)錯(cuò):NavigationDuplicated:?Avoided?redundant?navig

    這篇文章主要給大家介紹了關(guān)于解決Vue路由導(dǎo)航報(bào)錯(cuò):NavigationDuplicated:?Avoided?redundant?navigation?to?current?location的相關(guān)資料,這是最近做項(xiàng)目時(shí)候遇到的一個(gè)問題,現(xiàn)將解決辦法分享出來,需要的朋友可以參考下
    2023-01-01
  • vue頁面批量引入組件的操作代碼

    vue頁面批量引入組件的操作代碼

    這篇文章主要介紹了vue頁面批量引入組件,本文結(jié)合示例代碼給大家講解的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-12-12
  • 如何在在Vue3中使用markdown 編輯器組件

    如何在在Vue3中使用markdown 編輯器組件

    vue3發(fā)布正式版不久,生態(tài)還沒完全發(fā)展起來,目前支持vue3的開源markdown編輯器組件基本上也寥寥無幾,向大家推薦一個(gè)很好用的v-md-editor 組件,組件功能很強(qiáng)大,文檔也比較詳細(xì)。該文章只介紹組件的常用功能,更多高級的功能可以參考官方文檔。
    2021-05-05
  • Element?UI?Dialog對話框改成固定高度超出部分滾動(dòng)條滾動(dòng)

    Element?UI?Dialog對話框改成固定高度超出部分滾動(dòng)條滾動(dòng)

    這篇文章主要給大家介紹了關(guān)于Element?UI?Dialog對話框改成固定高度超出部分滾動(dòng)條滾動(dòng)的相關(guān)資料,el-dialog默認(rèn)高度是自由拉伸的,當(dāng)內(nèi)容超過屏幕時(shí)會(huì)出現(xiàn)滾動(dòng)條,按鈕和標(biāo)題都會(huì)隨著滾動(dòng),用戶體驗(yàn)不好,需要的朋友可以參考下
    2024-05-05
  • vue中使用v-if,v-else來設(shè)置css樣式的步驟

    vue中使用v-if,v-else來設(shè)置css樣式的步驟

    我們在使用vue項(xiàng)目開發(fā)時(shí),v-if是使用的非常多的,在這里我們談?wù)勅绾问褂胿-i來綁定修改css樣式,使用的主要是雙向數(shù)據(jù)綁定,即通過改變他的狀態(tài)來改變他的樣式,這篇文章主要介紹了vue中如何使用v-if,v-else來設(shè)置css樣式,需要的朋友可以參考下
    2023-03-03
  • Element Dialog對話框的使用示例

    Element Dialog對話框的使用示例

    這篇文章主要介紹了Element Dialog對話框的使用示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07

最新評論

新绛县| 黄陵县| 江源县| 黑河市| 灵寿县| 特克斯县| 江川县| 巴彦淖尔市| 镇巴县| 邓州市| 康定县| 大荔县| 上饶市| 乌兰浩特市| 喜德县| 上杭县| 奈曼旗| 柏乡县| 江源县| 普兰店市| 黔西| 镇赉县| 贵德县| 都匀市| 克东县| 阳城县| 商河县| 格尔木市| 宜君县| 义乌市| 图木舒克市| 青田县| 策勒县| 禹州市| 绥江县| 大兴区| 台北县| 星子县| 屯昌县| 宜宾县| 克拉玛依市|