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

Vue封裝實現(xiàn)可配置的搜索列表組件

 更新時間:2023年08月27日 10:51:26   作者:Kyle_Zhang  
在Vue.js開發(fā)中,經(jīng)常會遇到需要展示搜索和列表的需求,為了提高代碼復(fù)用性和開發(fā)效率,我們可以封裝一個可配置的搜索列表組件,下面我們就來講講如何實現(xiàn)這樣一個組件吧

在Vue.js開發(fā)中,經(jīng)常會遇到需要展示搜索和列表的需求。為了提高代碼復(fù)用性和開發(fā)效率,我們可以封裝一個可配置的搜索列表組件,使其能夠根據(jù)配置展示搜索表單和列表數(shù)據(jù),并支持搜索和分頁功能。本篇博客將引導(dǎo)您實現(xiàn)這樣一個組件。

組件結(jié)構(gòu)

我們將創(chuàng)建一個名為SearchList的組件,它將包含兩個子組件:SearchForm和DataList。SearchForm用于展示搜索表單和處理搜索事件,DataList用于展示列表數(shù)據(jù)和處理分頁事件。

搜索表單

首先,我們創(chuàng)建一個名為SearchForm的子組件,用于展示搜索表單和處理搜索事件??梢愿鶕?jù)業(yè)務(wù)需求自定義搜索表單的字段和樣式,并在用戶點擊搜索按鈕時觸發(fā)自定義事件。

<template>
  <form>
    <!-- 搜索表單字段配置,可以根據(jù)業(yè)務(wù)需求自定義 -->
    <input v-model="searchText" type="text" placeholder="請輸入搜索關(guān)鍵字" />
    <button @click="handleSearch">搜索</button>
  </form>
</template>
<script>
export default {
  data() {
    return {
      searchText: ''
    }
  },
  methods: {
    handleSearch() {
      // 將搜索關(guān)鍵字通過自定義事件傳遞給父組件
      this.$emit('search', this.searchText)
    }
  }
}
</script>

列表數(shù)據(jù)

然后,我們創(chuàng)建一個名為DataList的子組件,用于展示列表數(shù)據(jù)和處理分頁事件。可以根據(jù)業(yè)務(wù)需求自定義列表的列和樣式,并在用戶點擊分頁按鈕時觸發(fā)自定義事件。

<template>
  <ul>
    <!-- 列表數(shù)據(jù)渲染,可以根據(jù)業(yè)務(wù)需求自定義 -->
    <li v-for="item in dataList" :key="item.id">{{ item.name }}</li>
  </ul>
  <button @click="handlePrevPage">上一頁</button>
  <span>{{ currentPage }}</span>
  <button @click="handleNextPage">下一頁</button>
</template>
<script>
export default {
  props: {
    dataList: {
      type: Array,
      default: () => []
    },
    currentPage: {
      type: Number,
      default: 1
    }
  },
  methods: {
    handlePrevPage() {
      // 將用戶點擊的上一頁事件通過自定義事件傳遞給父組件
      this.$emit('prev-page')
    },
    handleNextPage() {
      // 將用戶點擊的下一頁事件通過自定義事件傳遞給父組件
      this.$emit('next-page')
    }
  }
}
</script>

搜索列表組件

最后,我們創(chuàng)建名為SearchList的父組件,封裝SearchForm和DataList,并通過props接收配置參數(shù)進行展示。我們將在父組件的methods中處理搜索和分頁事件,并用axios發(fā)送請求獲取數(shù)據(jù)。

<template>
  <div>
    <search-form @search="handleSearch"></search-form>
    <data-list :data-list="listData" :current-page="currentPage" @prev-page="handlePrevPage" @next-page="handleNextPage"></data-list>
  </div>
</template>
<script>
import SearchForm from './SearchForm'
import DataList from './DataList'
export default {
  components: {
    SearchForm,
    DataList
  },
  data() {
    return {
      listData: [],
      currentPage: 1
    }
  },
  methods: {
    handleSearch(keyword) {
      // 發(fā)送請求獲取數(shù)據(jù)
      axios
        .get(`/api/data?keyword=${keyword}&page=${this.currentPage}`)
        .then(response => {
          this.listData = response.data
        })
        .catch(error => {
          console.error(error)
        })
    },
    handlePrevPage() {
      // 處理上一頁事件
      this.currentPage--
      this.handleSearch()
    },
    handleNextPage() {
      // 處理下一頁事件
      this.currentPage++
      this.handleSearch()
    }
  }
}
</script>

在SearchList組件中,我們將SearchForm和DataList作為子組件導(dǎo)入,并直接引用它們。通過監(jiān)聽SearchForm的search事件和DataList的prev-page和next-page事件,并在methods中發(fā)送請求獲取數(shù)據(jù),我們可以實現(xiàn)搜索和分頁功能。

使用SearchList組件

在父組件中使用SearchList組件,通過props傳遞配置參數(shù),以展示搜索表單和列表數(shù)據(jù)。

plaintext

<template>
  <div>
    <search-list :columns="columns" :page-size="pageSize"></search-list>
  </div>
</template>
import SearchList from './SearchList
export default {
  components: {
    SearchList
  },
  data() {
    return {
      columns: [
        { label: '姓名', prop: 'name' },
        { label: '性別', prop: 'gender' }
      ],
      pageSize: 10
    }
  }
}

在父組件中,我們將SearchList作為子組件導(dǎo)入,并通過props傳遞columns和pageSize參數(shù)??梢愿鶕?jù)業(yè)務(wù)需求自定義columns和pageSize參數(shù),并根據(jù)實際情況處理搜索和分頁事件。

通過封裝可配置的搜索列表組件,我們可以在Vue.js開發(fā)中實現(xiàn)搜索和列表展示的復(fù)用,提高開發(fā)效率并增加代碼可維護性。使用SearchForm和DataList組件,我們可以根據(jù)業(yè)務(wù)需求自定義搜索表單和數(shù)據(jù)列表的展示樣式,并在父組件中處理搜索和分頁事件。

到此這篇關(guān)于Vue封裝實現(xiàn)可配置的搜索列表組件的文章就介紹到這了,更多相關(guān)Vue搜索列表組件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue中監(jiān)聽input框獲取焦點及失去焦點的問題

    vue中監(jiān)聽input框獲取焦點及失去焦點的問題

    這篇文章主要介紹了vue中監(jiān)聽input框獲取焦點,失去焦點的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • vue3封裝輪播圖組件的方法

    vue3封裝輪播圖組件的方法

    這篇文章主要為大家詳細(xì)介紹了vue3封裝輪播圖組件的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Vue實施重新發(fā)布和軟件熱更新的經(jīng)驗分享

    Vue實施重新發(fā)布和軟件熱更新的經(jīng)驗分享

    在Web應(yīng)用的開發(fā)周期中,版本管理和軟件熱更新是一個不可或缺的話題,隨著Vue.js框架的流行,越來越多的應(yīng)用程序選擇使用Vue來構(gòu)建前端,本文將探討在Vue應(yīng)用中實施重新發(fā)布和熱更新的最佳實踐,需要的朋友可以參考下
    2024-09-09
  • Vue中Element?UI組件庫使用方法詳解

    Vue中Element?UI組件庫使用方法詳解

    ElementUI是Vue的UI框架,提供了豐富的組件,方便快速開發(fā)頁面,本文詳細(xì)介紹了ElementUI的安裝、使用方法以及常見組件的說明,包括基礎(chǔ)組件、布局組件、選擇框組件、輸入框組件、下拉框組件等,需要的朋友可以參考下
    2024-11-11
  • vue觸發(fā)真實的點擊事件跟用戶行為一致問題

    vue觸發(fā)真實的點擊事件跟用戶行為一致問題

    這篇文章主要介紹了vue觸發(fā)真實的點擊事件跟用戶行為一致問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • 淺談vue-cli加載不到dev-server.js的解決辦法

    淺談vue-cli加載不到dev-server.js的解決辦法

    本篇文章主要介紹了淺談vue-cli加載不到dev-server.js的解決辦法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • Vue中使用vee-validate表單驗證的方法

    Vue中使用vee-validate表單驗證的方法

    vee validate 一個輕量級的 vue表單驗證插件。接下來通過本文給大家分享Vue中使用vee-validate表單驗證的方法,需要的朋友參考下吧
    2018-05-05
  • element-ui動態(tài)添加表單項并實現(xiàn)事件觸發(fā)驗證代碼示例

    element-ui動態(tài)添加表單項并實現(xiàn)事件觸發(fā)驗證代碼示例

    這篇文章主要給大家介紹了關(guān)于element-ui動態(tài)添加表單項并實現(xiàn)事件觸發(fā)驗證的相關(guān)資料,其實就是利用了vue的v-for循環(huán)渲染,通過添加數(shù)組實現(xiàn)動態(tài)添加表單項,需要的朋友可以參考下
    2023-12-12
  • Vue的自定義事件之組件通信工具詳解

    Vue的自定義事件之組件通信工具詳解

    這篇文章主要介紹了Vue的自定義事件之組件通信工具詳解,Vue的自定義事件(Custom Events)是一種強大的工具,用于實現(xiàn)組件之間的通信和數(shù)據(jù)傳遞,本文將深入探討什么是Vue的自定義事件,以及如何自定義和使用它們,需要的朋友可以參考下
    2023-10-10
  • Vue.js遞歸組件實現(xiàn)組織架構(gòu)樹和選人功能案例分析

    Vue.js遞歸組件實現(xiàn)組織架構(gòu)樹和選人功能案例分析

    這篇文章主要介紹了Vue.js遞歸組件實現(xiàn)組織架構(gòu)樹和選人功能,本文通過案例代碼講解的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-07-07

最新評論

越西县| 铜梁县| 阳谷县| 松潘县| 辽源市| 隆安县| 塔河县| 阳春市| 土默特左旗| 新昌县| 开江县| 正定县| 四平市| 大田县| 水城县| 斗六市| 福建省| 五河县| 明光市| 永泰县| 鄂托克旗| 吴川市| 甘洛县| 文山县| 西贡区| 历史| 海兴县| 新乐市| 丁青县| 平昌县| 山东省| 砀山县| 衡水市| 鄯善县| 吉木乃县| 黔江区| 绥棱县| 灵武市| 新乡县| 东明县| 邓州市|