亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

vue實(shí)現(xiàn)表格增刪改查效果的實(shí)例代碼

 更新時(shí)間:2017年07月18日 10:45:46   作者:純簡(jiǎn)的小屋  
本篇文章主要介紹了vue實(shí)現(xiàn)增刪改查效果的實(shí)例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

整理文檔,搜刮出一個(gè)vue實(shí)現(xiàn)表格增刪改查效果的實(shí)例代碼,稍微整理精簡(jiǎn)一下做下分享。

實(shí)現(xiàn)效果

我們把這些用戶(hù)信息保存到list的數(shù)組中,然后增刪改查就在這個(gè)數(shù)組上進(jìn)行:

list: [
  {
    username: 'aaaaa',
    email: '123@qq.com',
    sex: '男',
    province: '北京市',
    hobby: ['籃球', '讀書(shū)', '編程']
  },
  {
    username: 'bbbbb',
    email: 'bbbbbbb@163.com',
    sex: '女',
    province: '河北省',
    hobby: ['彈琴', '讀書(shū)', '插畫(huà)']
  }
  // ...
]

這里面的表單有:文本輸入框,單選按鈕,select選擇框,復(fù)選框等。

1. 展示數(shù)據(jù)

我們的數(shù)據(jù)都放在數(shù)組list中,但是這里并不直接對(duì)list對(duì)循環(huán)輸出,而是先把list中的數(shù)據(jù)給一個(gè)數(shù)組slist,對(duì)slist進(jìn)行循環(huán)輸出。因?yàn)槲覀冊(cè)诤竺娴牟樵?xún)功能中需要對(duì)數(shù)據(jù)進(jìn)行過(guò)濾,數(shù)組list一直保存著原始數(shù)據(jù)(包括新增、修改后或已刪除后),而數(shù)組slist只負(fù)責(zé)展示。

在vue中提供一個(gè)setSlist方法,將需要展示的數(shù)據(jù)給了數(shù)組slist:

// 獲取需要渲染到頁(yè)面中的數(shù)據(jù)
setSlist(arr) {
  this.slist = JSON.parse(JSON.stringify(arr));
}

然后在html中使用v-for把slist數(shù)組渲染出來(lái):

<tr v-cloak v-for="(item, index) of slist">
  <td></td>
  <td></td>
  <td></td>
  <td></td>
  <td></td>
  <td></td>
  <td><a href="javascript:;" rel="external nofollow" rel="external nofollow" @click="showOverlay(index)">修改</a> | <a href="javascript:;" rel="external nofollow" rel="external nofollow" @click="del(index)">刪除</a></td>
</tr>

 在操作這一欄中,給修改和刪除操作綁定上事件。

2. 增加和刪除功能

把增加功能和刪除合并到一起,是這兩個(gè)功能相對(duì)來(lái)說(shuō)都比較簡(jiǎn)單。

增加用戶(hù)時(shí)使用push方法,把用戶(hù)的信息添加到list數(shù)組的最后:

this.list.push({
  username: 'ffff',
  email: 'fffffff@163.com',
  sex: '女',
  province: '河南省',
  hobby: ['彈琴', '插畫(huà)']
});

這樣就能添加一位ffff的用戶(hù)了。

刪除用戶(hù)時(shí),通過(guò)splice(index, 1),可以刪除index位置的數(shù)據(jù),頁(yè)面上的數(shù)據(jù)自動(dòng)就會(huì)更新。

3. 修改功能

假設(shè)我們彈層里的數(shù)據(jù)是selectedlist,那么每次修改時(shí),把index位置的數(shù)據(jù)給了selectedlist,然后在彈層中修改selectedlist。我們也能看到修改數(shù)據(jù)的類(lèi)型: 文本框(用戶(hù)名,郵箱),單選按鈕(性別),select選擇框(所在省份),多選框(愛(ài)好),這里我們主要練習(xí)的是表單處理(https://cn.vuejs.org/v2/guide/forms.html)。彈層是否顯示用變量isActive來(lái)控制:

// 修改數(shù)據(jù)
modifyData(index) {
  this.selected = index; // 修改的位置
  this.selectedlist = this.list[index];
  this.isActive = true;
}

有沒(méi)有發(fā)現(xiàn)一個(gè)問(wèn)題,當(dāng)修改彈層中的信息時(shí),表格中的數(shù)據(jù)也同步更新了。可是我們本身是希望當(dāng)點(diǎn)擊保存按鈕時(shí),才把彈層中的數(shù)據(jù)保存到表格里。問(wèn)題的根源就出在這里:

this.selectedlist = this.list[index];

因?yàn)閘ist[index]是個(gè)Object類(lèi)型的數(shù)據(jù),若使用=賦值,則賦值操作為淺度拷貝(把數(shù)據(jù)的地址賦值給對(duì)應(yīng)變量,而沒(méi)有把具體的數(shù)據(jù)復(fù)制給變量,變量會(huì)隨數(shù)據(jù)值的變化而變化),selectedlist與list[index]使用相同的數(shù)據(jù)地址,互相引起數(shù)據(jù)值的變化。因此這里我們需要進(jìn)行深度拷貝:

復(fù)制代碼 代碼如下:

this.selectedlist = JSON.parse( JSON.stringify(this.list[index]) ); // 先轉(zhuǎn)換為字符串,然后再轉(zhuǎn)換

當(dāng)用戶(hù)修改數(shù)據(jù)后,selectedlist就會(huì)發(fā)生變化,點(diǎn)擊保存按鈕時(shí),將數(shù)據(jù)重新保存到index位置:

/*
 this.list 數(shù)據(jù)數(shù)組
 this.selected 剛才修改的位置
 this.selectedlist 需要保存的數(shù)據(jù)
*/
Vue.set(this.list, this.selected, this.selectedlist);

4. 查詢(xún)功能

在第1小節(jié)中我們已經(jīng)說(shuō)過(guò),在頁(yè)面表格中展示的是slist中的數(shù)據(jù),就是為了方便執(zhí)行查詢(xún)操作:

// 獲取需要渲染到頁(yè)面中的數(shù)據(jù)
setSlist(arr) {
  this.slist = JSON.parse(JSON.stringify(arr));
}

每次根據(jù)某些條件將過(guò)濾后的數(shù)據(jù)賦值給slist數(shù)組,展示出查詢(xún)后的數(shù)據(jù)。這里我們的查詢(xún)實(shí)現(xiàn)了兩個(gè)小功能:

1.用戶(hù)在輸入某個(gè)字符后,自動(dòng)在輸入框下方用列表展示出用戶(hù)可能要查詢(xún)的詞語(yǔ)(如用戶(hù)名等)

2.同步更新表格中的數(shù)據(jù)

這里我們通過(guò)用戶(hù)名和郵箱進(jìn)行查詢(xún),因此在過(guò)濾數(shù)據(jù)時(shí),需要檢測(cè)用戶(hù)名和郵箱是否含有查詢(xún)的單詞。我們先給輸入框綁定一個(gè)input事件,同時(shí)用datalist展示用戶(hù)可能要查詢(xún)的詞語(yǔ):

<input type="text" placeholder="search" @input="search" list="cars" class="search">
<datalist id="cars">
  <option v-for="item in searchlist" :value="item"></option>
</datalist>

search功能的實(shí)現(xiàn),searchlist為在輸入框下方展示的可能要搜索的詞語(yǔ),ss數(shù)組則保存過(guò)濾后的數(shù)據(jù),當(dāng)循環(huán)完畢后,設(shè)置調(diào)用setSlist方法修改slist數(shù)組:

每當(dāng)用戶(hù)輸入或者刪除一個(gè)字符時(shí)都會(huì)調(diào)用search方法,執(zhí)行查詢(xún)操作,當(dāng)用點(diǎn)擊展示詞語(yǔ)列表時(shí),也會(huì)調(diào)用search方法。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue自定義switch開(kāi)關(guān)組件,實(shí)現(xiàn)樣式可自行更改

    vue自定義switch開(kāi)關(guān)組件,實(shí)現(xiàn)樣式可自行更改

    今天小編就為大家分享一篇vue自定義switch開(kāi)關(guān)組件,實(shí)現(xiàn)樣式可自行更改,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • Vue父子組件之間的通信實(shí)例詳解

    Vue父子組件之間的通信實(shí)例詳解

    在vue組件通信中其中最常見(jiàn)通信方式就是父子組件之中的通信,而父子組件的設(shè)定方式在不同情況下又各有不同。這篇文章主要介紹了Vue---父子組件之間的通信,需要的朋友可以參考下
    2018-09-09
  • 使用VueCli3+TypeScript+Vuex一步步構(gòu)建todoList的方法

    使用VueCli3+TypeScript+Vuex一步步構(gòu)建todoList的方法

    這篇文章主要介紹了使用VueCli3+TypeScript+Vuex一步步構(gòu)建todoList的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • vuedraggable實(shí)現(xiàn)拖拽功能

    vuedraggable實(shí)現(xiàn)拖拽功能

    這篇文章主要為大家詳細(xì)介紹了vuedraggable實(shí)現(xiàn)拖拽功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • vue中useVModel()的使用方法(通俗易懂)

    vue中useVModel()的使用方法(通俗易懂)

    useVModel()用來(lái)實(shí)現(xiàn)父子組件間數(shù)據(jù)的雙向綁定,若不想使用默認(rèn)回調(diào),也可以自己使用emit實(shí)現(xiàn)回調(diào),這篇文章主要給大家介紹了關(guān)于vue中useVModel()使用方法的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • vue+vue-meta-info動(dòng)態(tài)設(shè)置meta標(biāo)簽教程

    vue+vue-meta-info動(dòng)態(tài)設(shè)置meta標(biāo)簽教程

    這篇文章主要介紹了vue+vue-meta-info動(dòng)態(tài)設(shè)置meta標(biāo)簽教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • Vue?element-ui?el-cascader?只能末級(jí)多選問(wèn)題

    Vue?element-ui?el-cascader?只能末級(jí)多選問(wèn)題

    這篇文章主要介紹了Vue?element-ui?el-cascader?只能末級(jí)多選問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • vue+elementui實(shí)現(xiàn)拖住滑塊拼圖驗(yàn)證

    vue+elementui實(shí)現(xiàn)拖住滑塊拼圖驗(yàn)證

    這篇文章主要為大家詳細(xì)介紹了vue+elementui實(shí)現(xiàn)拖住滑塊拼圖驗(yàn)證,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Vue+Element-UI中el-table動(dòng)態(tài)合并單元格:span-method方法代碼詳解

    Vue+Element-UI中el-table動(dòng)態(tài)合并單元格:span-method方法代碼詳解

    el-table是element-ui提供的表格組件,可以用于展示和操作數(shù)據(jù),這篇文章主要給大家介紹了關(guān)于Vue+Element-UI中el-table動(dòng)態(tài)合并單元格:span-method方法的相關(guān)資料,需要的朋友可以參考下
    2023-09-09
  • vue和H5 draggable實(shí)現(xiàn)拖拽并替換效果

    vue和H5 draggable實(shí)現(xiàn)拖拽并替換效果

    這篇文章主要為大家詳細(xì)介紹了vue和H5 draggable實(shí)現(xiàn)拖拽并替換效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-07-07

最新評(píng)論