欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

搜索表單

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

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

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

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

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

搜索列表組件

最后,我們創(chuàng)建名為SearchList的父組件,封裝SearchForm和DataList,并通過(guò)props接收配置參數(shù)進(jìn)行展示。我們將在父組件的methods中處理搜索和分頁(yè)事件,并用axios發(fā)送請(qǐng)求獲取數(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ā)送請(qǐng)求獲取數(shù)據(jù)
      axios
        .get(`/api/data?keyword=${keyword}&page=${this.currentPage}`)
        .then(response => {
          this.listData = response.data
        })
        .catch(error => {
          console.error(error)
        })
    },
    handlePrevPage() {
      // 處理上一頁(yè)事件
      this.currentPage--
      this.handleSearch()
    },
    handleNextPage() {
      // 處理下一頁(yè)事件
      this.currentPage++
      this.handleSearch()
    }
  }
}
</script>

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

使用SearchList組件

在父組件中使用SearchList組件,通過(guò)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)入,并通過(guò)props傳遞columns和pageSize參數(shù)??梢愿鶕?jù)業(yè)務(wù)需求自定義columns和pageSize參數(shù),并根據(jù)實(shí)際情況處理搜索和分頁(yè)事件。

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

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

相關(guān)文章

  • Vue項(xiàng)目中v-bind動(dòng)態(tài)綁定src路徑不成功問(wèn)題及解決

    Vue項(xiàng)目中v-bind動(dòng)態(tài)綁定src路徑不成功問(wèn)題及解決

    這篇文章主要介紹了Vue項(xiàng)目中v-bind動(dòng)態(tài)綁定src路徑不成功問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue3-ace-editor如何配置語(yǔ)法

    vue3-ace-editor如何配置語(yǔ)法

    這篇文章主要介紹了vue3-ace-editor如何配置語(yǔ)法問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • vue3.0語(yǔ)法糖內(nèi)的defineProps及defineEmits解析

    vue3.0語(yǔ)法糖內(nèi)的defineProps及defineEmits解析

    這篇文章主要介紹了vue3.0語(yǔ)法糖內(nèi)的defineProps及defineEmits解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • uni-app制作小程序?qū)崿F(xiàn)左右菜單聯(lián)動(dòng)效果

    uni-app制作小程序?qū)崿F(xiàn)左右菜單聯(lián)動(dòng)效果

    這篇文章主要介紹了uni-app制作小程序?qū)崿F(xiàn)左右菜單聯(lián)動(dòng)效果,實(shí)現(xiàn)步驟和思路都很簡(jiǎn)單,今天通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-11-11
  • vue父組件傳值子組件報(bào)錯(cuò)Avoid?mutating?a?prop?directly解決

    vue父組件傳值子組件報(bào)錯(cuò)Avoid?mutating?a?prop?directly解決

    這篇文章主要為大家介紹了vue父組件傳值子組件報(bào)錯(cuò)Avoid?mutating?a?prop?directly解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • Vant?Weapp組件picker選擇器初始默認(rèn)選中問(wèn)題

    Vant?Weapp組件picker選擇器初始默認(rèn)選中問(wèn)題

    這篇文章主要介紹了Vant?Weapp組件picker選擇器初始默認(rèn)選中問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • 在vue中實(shí)現(xiàn)跨域方法小結(jié)

    在vue中實(shí)現(xiàn)跨域方法小結(jié)

    在Web開(kāi)發(fā)中,跨域問(wèn)題是一大挑戰(zhàn),跨域是指網(wǎng)絡(luò)請(qǐng)求從一個(gè)域名發(fā)起,而請(qǐng)求的目標(biāo)資源位于另一個(gè)不同的域名下,通常使用Vue CLI的代理來(lái)解決跨域問(wèn)題,而在生產(chǎn)環(huán)境中,可以通過(guò)后端配置CORS或使用Nginx反向代理,或者通過(guò)服務(wù)器中轉(zhuǎn)來(lái)解決跨域問(wèn)題
    2023-10-10
  • Vue使用Antd中a-table實(shí)現(xiàn)表格數(shù)據(jù)列合并展示示例代碼

    Vue使用Antd中a-table實(shí)現(xiàn)表格數(shù)據(jù)列合并展示示例代碼

    文章介紹了如何在Vue中使用Ant?Design的a-table組件實(shí)現(xiàn)表格數(shù)據(jù)列合并展示,通過(guò)處理函數(shù)對(duì)源碼數(shù)據(jù)進(jìn)行操作,處理相同數(shù)據(jù)時(shí)合并列單元格
    2024-11-11
  • Vue實(shí)現(xiàn)購(gòu)物車(chē)計(jì)算總價(jià)功能

    Vue實(shí)現(xiàn)購(gòu)物車(chē)計(jì)算總價(jià)功能

    這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)購(gòu)物車(chē)計(jì)算總價(jià)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • element el-table實(shí)現(xiàn)多級(jí)表頭的代碼

    element el-table實(shí)現(xiàn)多級(jí)表頭的代碼

    多級(jí)表頭的作用與優(yōu)勢(shì),多級(jí)表頭能夠清晰地展示數(shù)據(jù)的層次結(jié)構(gòu),幫助我們更好地理解數(shù)據(jù)之間的關(guān)系,下面通過(guò)本文給大家介紹element el-table實(shí)現(xiàn)多級(jí)表頭的代碼,感興趣的朋友跟隨小編一起看看吧
    2024-04-04

最新評(píng)論