日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

vue 中使用 vxe-table 制作可編輯表格的使用過程

瀏覽:29日期:2023-12-12 15:11:13

項(xiàng)目上有一個表格需要實(shí)現(xiàn)在線編輯,開始用了 element 的el-table 實(shí)現(xiàn),單元格內(nèi)基礎(chǔ)情況就是監(jiān)聽了單擊單元格切換一個span標(biāo)簽與input標(biāo)簽,復(fù)雜點(diǎn)的單元格使用了大量的條件判斷來實(shí)現(xiàn)對應(yīng)的編輯操作,比如下拉選,popover彈框編輯。整個表格幾十列,十幾條數(shù)據(jù)就已經(jīng)出現(xiàn)了明顯的卡頓,在做了諸多操作(比如el-input使用原生input替換、減少判斷、減少頻繁的數(shù)據(jù)切換等)之后,速度雖然有所提升,但是還是肉眼可見的卡頓,基本不可用。然后便轉(zhuǎn)戰(zhàn)vxe-table,重寫了一遍這個表格。 (別問我為什么不直接用更好的vxe-table,正經(jīng)人寫代碼誰會首先想到重構(gòu)而不是試試優(yōu)化呢。。。)

下面記錄一下使用過程。

1. 全局安裝

npm install xe-utils@3 vxe-table@3

main.js 中引入

import ’xe-utils’;import VXETable from ’vxe-table’;import ’vxe-table/lib/style.css’;​Vue.use(VXETable);

其實(shí)它可以按需加載來減少項(xiàng)目體積,但是我覺得有點(diǎn)麻煩就沒弄,想要了解可以點(diǎn)擊下面鏈接查看~ vue-table 按需加載

2. 基礎(chǔ)用法

<template> <vxe-table : :data='tableData'><vxe-table-column type='seq' width='60'></vxe-table-column><vxe-table-column field='name'></vxe-table-column><vxe-table-column field='desc'></vxe-table-column><vxe-table-column field='link'></vxe-table-column> </vxe-table></template><script> export default {data () { return {allAlign: null,tableData: [ {name: 'html',desc: ’超文本標(biāo)記語言’,link: ’https://www.runoob.com/html/html-tutorial.html’ }, {name: 'css',desc: ’層疊樣式表’,link: ’https://www.runoob.com/css/css-intro.html’ }, {name: 'js',desc: ’JavaScript’,link: ’https://www.runoob.com/js/js-tutorial.html’ }] }} }</script>

以上,即可實(shí)現(xiàn)一個基礎(chǔ)表格,但是現(xiàn)在僅僅是表格展示,實(shí)現(xiàn)編輯還需要另外的配置。

vue 中使用 vxe-table 制作可編輯表格的使用過程

3. 實(shí)現(xiàn)編輯

<template> <!--表格添加edit-config配置--> <vxe-table border :data='tableData' :edit-config='{trigger: ’click’, mode: ’cell’}'><!--對單元格vxe-table-column進(jìn)行改造,使用edit-render來配置編輯屬性---><vxe-table-column fixed='left' field='desc' :edit-render='{name: ’input’, attrs: {type: ’text’}}'></vxe-table-column> </vxe-table></template>

vue 中使用 vxe-table 制作可編輯表格的使用過程

具體配置可以查看 api

3. 實(shí)現(xiàn)下拉選擇

<template> <vxe-table border :data='tableData' :edit-config='{trigger: ’click’, mode: ’cell’}'><!--和輸入框編輯區(qū)別僅在于edit-render的配置不同,data中新增選項(xiàng)selection---><vxe-table-column field='isShow' :edit-render='{name: ’select’, options: selection, optionProps: {value: ’status’, label: ’label’}}'></vxe-table-column> </vxe-table></template><script> export default {data () { return {allAlign: null,tableData: [ {name: 'html',desc: ’超文本標(biāo)記語言’,link: ’https://www.runoob.com/html/html-tutorial.html’,isShow: 1 } // 省略一下多條數(shù)據(jù)········],selection: [ {status: 1, label: ’是’}, {status: 0, label: ’否’}] }} }</script>

vue 中使用 vxe-table 制作可編輯表格的使用過程

4. 自定義模板

vxe-table自定義模板是使用插槽實(shí)現(xiàn)的,可以使用<template #插槽名></template>實(shí)現(xiàn),比如:

<vxe-table-column field='name' :edit-render='{name: ’input’, attrs: {type: ’text’}}'> <!--使用#header自定義表頭--> <template #header><span>名稱</span><span style='font-size: 12px; color: #ccc'>技術(shù)</span> </template> <!--使用#default自定義內(nèi)容--> <template #default='{row}'><span>技術(shù)名稱</span><span>{{row.name}}</span> </template> <!--使用#edit自定義編輯--> <template #edit='{row}'><p>技術(shù)名稱</p><input type='text' v-model='row.name' class='vxe-default-input'> </template></vxe-table-column>

需要演示,所以把名稱列做成了可編輯列,使用#header、#default、#edit分別自定義了列頭、默認(rèn)顯示內(nèi)容、編輯顯示內(nèi)容,如下圖:

vue 中使用 vxe-table 制作可編輯表格的使用過程

5. 實(shí)時保存功能

使用vxe-table的edit-closed方法監(jiān)聽編輯框關(guān)閉,調(diào)用更新接口即可實(shí)現(xiàn)。

<template> <vxe-table border :data='tableData' :edit-config='{trigger: ’click’, mode: ’cell’}' @edit-closed='updateData'><vxe-table-column field='isShow' :edit-render='{name: ’select’, options: selection, optionProps: {value: ’status’, label: ’label’}}'></vxe-table-column> </vxe-table></template><script> export default {data () { // 省略掉···},methods: { updateData ({ row, column }) {// 后臺更新接口接受一條數(shù)據(jù),所以傳row即可console.log(row); }} }</script>

其實(shí)官方方法還實(shí)現(xiàn)了檢查當(dāng)前單元格內(nèi)容是否更改,不過我們這里數(shù)據(jù)結(jié)構(gòu)略復(fù)雜,源碼里的方法不太適用。 這里貼出來一下

editClosedEvent ({ row, column }) { const $table = this.$refs.xTable const field = column.property const cellValue = row[field] // 判斷單元格值是否被修改 if ($table.isUpdateByRow(row, field)) {setTimeout(() => { this.$XModal.message({content: `局部保存成功! ${field}=${cellValue}`,status: ’success’ }) // 局部更新單元格為已保存狀態(tài) $table.reloadRow(row, null, field)}, 300) }}

以上即為實(shí)現(xiàn)可編輯表格的基本寫法,容我再研究一下如何檢測數(shù)據(jù)很深的情況下如何檢測數(shù)據(jù)是否發(fā)生改動。

總結(jié)一下,vxe-table的可編輯表格直接內(nèi)置了可編輯的功能,配置即可用,避免了el-table的各種判斷切換,可以更優(yōu)雅的實(shí)現(xiàn)編輯功能,另外它還支持虛擬滾動,在大量數(shù)據(jù)加載時可以有更好的性能。缺點(diǎn)就是在UI圖確定的情況下需要重寫表格樣式,挺費(fèi)時間的。

建議各位如果遇到復(fù)雜表格的話,就不要自己想著優(yōu)化性能了,直接使用vxe-table一步到位,后期徒增重構(gòu)成本,血的教訓(xùn)啊

到此這篇關(guān)于vue 中使用 vxe-table 制作可編輯表格的文章就介紹到這了,更多相關(guān)vue可編輯表格內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Vue
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩一二三区在线观看| 日韩欧美一区二区三区在线视频 | 亚洲专区一区| 国产欧美一区二区三区精品观看| 石原莉奈在线亚洲三区| 亚洲一区有码| 国产亚洲电影| 福利视频一区| 国产综合色产| 久久亚洲一区| 欧美日韩99| 97精品国产福利一区二区三区| 久久免费大视频| 中文字幕av一区二区三区四区| 日韩av不卡在线观看| 久久精品日韩欧美| 欧美高清不卡| 亚洲资源在线| 久久精品伊人| 91成人精品| 青青国产精品| 国产超碰精品| 丝袜美腿一区二区三区| 国产免费av一区二区三区| 国产精品伦理久久久久久| 在线成人直播| 欧美日韩一区自拍| 久久亚洲成人| 亚洲欧美在线综合| 精品久久久久中文字幕小说| 国内揄拍国内精品久久| 国产一精品一av一免费爽爽| 国产日产一区| 精品三级久久| 欧美一级一区| 伊人精品在线| 久久亚洲资源中文字| 色天使综合视频| 欧美日韩18| 午夜日本精品| 精品视频一区二区三区四区五区| 99免费精品| 国产视频网站一区二区三区| 久久中文字幕二区| 国产精品videosex极品| 一区在线免费观看| 国产一区国产二区国产三区| 老司机久久99久久精品播放免费| 麻豆91在线播放| 亚洲另类黄色| 激情五月综合网| 国产999精品在线观看| 色狠狠一区二区三区| 久久精品导航| 久久av综合| 日韩三区四区| 中文视频一区| 精品视频一区二区三区在线观看| 久久电影tv| 亚洲电影在线| 国产精品美女午夜爽爽| 丝袜a∨在线一区二区三区不卡| 国产精选在线| 免播放器亚洲| 欧美三级精品| 精品久久99| 久久国产生活片100| 喷白浆一区二区| 99久久久久| 日韩天堂在线| 中文字幕人成乱码在线观看| 国产精品日韩精品中文字幕| 亚洲人成网77777色在线播放 | 99精品99| 色综合狠狠操| 精品一区二区三区在线观看视频| 日本在线视频一区二区| 夜夜嗨一区二区三区| 久久美女性网| 伊人久久国产| 欧美激情91| 国产成人久久精品一区二区三区| 91一区二区三区四区| 免费一级欧美片在线观看网站 | 精品日韩一区| 国产视频网站一区二区三区| 青青在线精品| 日韩在线观看一区二区三区| 中文不卡在线| 亚欧洲精品视频在线观看| 男人的天堂久久精品| 午夜在线播放视频欧美| 亚洲一卡久久| 噜噜噜久久亚洲精品国产品小说| 一本一本久久| 欧美美女一区| 国产亚洲毛片| 中文无码日韩欧| 色8久久久久| 日韩在线成人| 日韩av三区| 欧美国产精品| 久久不见久久见国语| 国产精品一卡| 欧美日韩免费观看视频| 久久亚洲精品伦理| 麻豆精品视频在线| 欧美在线精品一区| 久久国产乱子精品免费女| 国产精品久久久久久久久久久久久久久 | 日本免费久久| 日本蜜桃在线观看视频| 99久久精品网| 综合欧美亚洲| 欧美成a人片免费观看久久五月天| 久久精品伊人| 久久人人97超碰国产公开结果| 欧美日中文字幕| 老牛国产精品一区的观看方式| 午夜视频一区二区在线观看| 国产伦精品一区二区三区视频| 精品亚洲精品| 黄色aa久久| 国产精品婷婷| 国产精品igao视频网网址不卡日韩| 久久的色偷偷| 国产一区二区三区精品在线观看| 久久av一区| 精品美女视频| 日韩中文在线播放| 久久99伊人| 欧美xxxx性| 午夜国产一区二区| 日韩国产欧美三级| 国产一区二区三区探花| 欧美1区免费| 国产午夜久久av| 亚洲黄色中文字幕| 性一交一乱一区二区洋洋av| 国产精品s色| 欧美日韩免费观看一区=区三区| 日韩精品视频一区二区三区| a天堂资源在线| 婷婷成人av| 亚洲伦乱视频| 欧美影院精品| 性欧美69xoxoxoxo| 精品午夜视频| 水蜜桃久久夜色精品一区的特点 | 亚洲精品亚洲人成在线观看| 快she精品国产999| 国产在线一区不卡| 一区二区亚洲视频| caoporn视频在线| 亚洲成人一区| 国产欧美一区二区三区精品酒店| 欧美日韩一区二区综合| 国产精品欧美日韩一区| 女同性一区二区三区人了人一 | 国产日韩亚洲欧美精品| 久久精品观看| 欧美激情五月| 亚洲区国产区| 欧美/亚洲一区| 精品视频一区二区三区四区五区| 欧美久久精品一级c片| 久久亚洲道色| 天堂精品久久久久| 午夜精品影院| 国产精品久久观看| 国产精品一卡| 日韩一二三区在线观看| 午夜精品网站| 久久裸体视频| 色在线视频观看| 久久99蜜桃| 日韩精品视频在线看| 丝袜亚洲另类欧美| 欧美va天堂| 蜜桃av.网站在线观看| 国产精品久久久久久久久免费高清| 蜜臀av亚洲一区中文字幕| 久久久噜噜噜| 欧美国产一级| 久久久精品区| 久久高清国产| 国产福利91精品一区二区| 久久久久欧美精品| 国产一区二区三区四区五区| 日韩三级视频| 一区二区91| 丝袜诱惑制服诱惑色一区在线观看| 日韩中文视频| 私拍精品福利视频在线一区| 中文在线а√天堂| 国产精品免费精品自在线观看| 亚洲精品高潮| 亚洲丝袜美腿一区| 日韩在线卡一卡二| 美女精品网站|