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

使用ElementUI寫一個前端分頁查詢的實例

 更新時間:2022年02月18日 09:52:57   作者:強風吹拂丶  
本文主要介紹了使用ElementUI寫一個前端分頁查詢的實例,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

前言

一般我們在做項目的時候,都是通過調用后臺接口去做增刪改查,但是也有例外,有些某些特定場景下,會讓前端去做好增刪改查. 那么我們今天就來做一下這個需求. 使用的框架是Vue,UI框架是使用率很高的ElementUI. 那么我們開干吧。

前端分頁

假定我們的數(shù)據(jù)是通過點擊一個添加按鈕,彈出一個添加彈窗,輸入好數(shù)據(jù)后,點擊確定按鈕,把數(shù)據(jù)保存到表格中去. 那么就是這樣的

{
    data () {
        return {
            page: {
                pageOffset: 1, // 分頁頁碼, 默認第一頁
                pageCount: 20, // 一頁的頁數(shù), 默認20
            },
            allData: [], // 表格所有數(shù)據(jù)的數(shù)據(jù)源
            tableData: [] // 表格數(shù)據(jù)源
        }
    },
    methods: {
        // 添加按鈕,彈窗一系列操作后,點擊確定保存數(shù)據(jù),調用的方法
        saveData (data) {
            if (!data) return
            this.allData.push(data)
            this.paging()
        },
        // 點擊第一頁,第二頁的監(jiān)聽方法
        pageChange (pageOffset) {
          this.page.pageOffset = pageOffset
          this.paging()
        },
        // 分頁方法
        paging () {
            const pageOffset = this.page.pageOffset // 頁碼
            const pageCount = this.page.pageCount // 一頁顯示多少個數(shù)據(jù)
            this.tableData = this.allData.slice((pageOffset - 1) * pageCount, pageOffset * pageCount)
        }
    }
}

具體代碼差不多就是這樣啦,其實是很簡單,但是有的時候,可能也會沒有思路。下面來總結一下前端分頁的幾個點:

  • 需要兩個變量,一個存儲的是總的數(shù)據(jù),一個存儲的是我們頁面需要展示的分頁數(shù)據(jù)
  • 然后就是根據(jù)頁碼和一頁展示的頁數(shù)通過slice方法去得到

查詢

假如在前端分頁的內容下,需求再讓加上一個查詢條件,去過濾數(shù)據(jù),并且需要根據(jù)多條件過濾,那么怎么辦呢? 我們可以寫一個這樣的方法:

// 查詢數(shù)據(jù)
// val:  輸入框查詢的值
// data: 查詢的數(shù)據(jù)源
// fuzzySearch: 是否是模糊查詢
function search (key, val, data, fuzzySearch = false) {
      const searchTxt = val.trim()
      if (searchTxt === '') {
        return data
      }
      // 如果以空格隔開的話,則表示可以多值過濾
      if (searchTxt && ~searchTxt.indexOf(' ')) {
        let searchTxtArr = searchTextToArr(searchTxt)
        return data.filter((o) => {
          return ~searchTxtArr.indexOf(o[key])
        })
      } else {
        // 單值過濾
        return data.filter((o) => {
          // 是否是模糊查詢
          return fuzzySearch ? ~o[key].indexOf(searchTxt) : searchTxt === o[key]
        })
      }
}
// 把多選查詢條件變成數(shù)組
function searchTextToArr (str) {
    let text = str.trim()
    // 過濾掉多余的空格, 比如 '男  女' 中間多輸入了一個空格的情況.
    return text.split(' ').filter((o) => {
        return o === '0' || o
    })
}
// 數(shù)據(jù)
const data = [
    {name: 'james', sex: '男'},
    {name: 'nancy', sex: '女'},
    {name: 'bob', sex: '男'},
    {name: 'allen', sex: '男'},
    {name: 'jack', sex: '男'},
    {name: 'jasmine', sex: '女'},
]
// 測試
search('name', 'jack   jasmine', data) // [{"name":"jack","sex":"男"},{"name":"jasmine","sex":"女"}]
search('name', ' allen ', data) // [{"name":"allen","sex":"男"}]
search('name', 'j', data, true) // [{"name":"james","sex":"男"},{"name":"jack","sex":"男"},{"name":"jasmine","sex":"女"}]

以上代碼實現(xiàn)了模糊查詢、多值查詢、單值精確查詢。 主要就是利用indexOffilter去做過濾和判斷. 另外還去做了一些用戶的誤操作的時候的兼容,讓用戶在不完全符合輸入條件的時候,也能找到想要的數(shù)據(jù)。增強用戶體驗. 代碼的話,里邊寫了注釋,很容易懂。 如果有不懂的地方的話,可以留言跟我說一下,大家交流一下.

寫在最后

今天主要分享用ElementUI寫一個前端分頁,然后搜索的話,怎么實現(xiàn)模糊查詢、精確查詢以及多值查詢的功能。 內容比較樸素啦。 但是還是比較偏實用的。

到此這篇關于使用ElementUI寫一個前端分頁查詢的實例的文章就介紹到這了,更多相關Element 分頁查詢內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論

焉耆| 新干县| 乌兰察布市| 都昌县| 前郭尔| 朝阳县| 田阳县| 班戈县| 广南县| 高要市| 平舆县| 西乌珠穆沁旗| 霍林郭勒市| 南岸区| 来凤县| 鄄城县| 林州市| 天台县| 靖宇县| 巨鹿县| 和平区| 石棉县| 哈尔滨市| 农安县| 伊宁市| 鹤山市| 建宁县| 琼结县| 益阳市| 密山市| 海原县| 湛江市| 八宿县| 郎溪县| 论坛| 鹤壁市| 石渠县| 绥芬河市| 祥云县| 肃南| 民县|