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

vue實現(xiàn)條件疊加搜索的解決方法

 更新時間:2019年05月28日 10:34:15   作者:平常心_c  
這篇文章主要為大家詳細介紹了vue實現(xiàn)條件疊加搜索的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下

案例場景:

現(xiàn)在有個文章管理模塊,在該模塊中有欄目選擇、文章搜索、分頁功能。這些功能改變其中一個都會對查詢的文章有所改變。案例圖如下:

實現(xiàn)方案有兩種:

其一、我們開始可能會想到對每個功能綁定一個處理事件,但是這樣做我們對數(shù)據(jù)的維護工作將大大加大,而且用這樣方案做數(shù)據(jù)的疊加篩選不是很好。

方案二、我們將所有提交的數(shù)據(jù)放到一起維護然后再進行深度監(jiān)聽,當某一個值、或多個值的改變時,在去進行數(shù)據(jù)的查詢,此時問題也變得更易于理解與維護,具體實現(xiàn)如下:

分頁代碼如下:

<template>
 <el-pagination
  background
  :page-size="params.pageSize"
  @current-change="handlePaginationChange"
  layout="prev, pager, next"
  :total="total">
 </el-pagination>
</template>

下拉選擇框、搜索框代碼如下: 

 <template>
//下拉選擇框
<el-select v-model="params.categoryId" placeholder="請選擇欄目" size='mini'
 v-loading="loadingCategory">
 <el-option :key='c.id' v-for='c in categories' :label="c.name" :value="c.id"></el-option>
</el-select>
 
//搜索框
<el-input placeholder="請輸入關鍵字"
 prefix-icon="el-icon-search"
 v-model="params.keywords"
  clearable>
</el-input>
</template>

數(shù)據(jù)維護、與方法(事件處理)

export default{
 data(){
  return{
   ... //其它的數(shù)據(jù)省略
 
   params:{ //存儲分頁、搜索數(shù)據(jù)
   page:0,
   pageSize:3,
   categoryId:undefined,
   keywords:undefined
   }
  }
 },
 watch:{
 params:{
  handler(val){
   this.findArticle(); //查找文章
  },
  deep:true //深度監(jiān)聽
 },
 methods:{
  //處理分頁
  handlePaginationChange(page){
   this.params.page=page-1;
  }, 
  //查詢文章
  findArticle(){
   axios.get('',{params:this.params})
   .then(()=>{})
   .catch(()=>{})
  }
 }
 
}

小結:通過上面的雙向數(shù)據(jù)綁定、我們將所有數(shù)據(jù)放到 params中集中管理(進行數(shù)據(jù)的監(jiān)聽)、當數(shù)據(jù)發(fā)生改變時我們?nèi)フ埱髷?shù)據(jù),來局部更新表格中的數(shù)據(jù)。

存在問題與解決:

1.這種實現(xiàn)方法的實現(xiàn)是基于所有數(shù)據(jù)的和查詢、如果我們的需求是,當每次選擇欄目時,都要顯示第一頁欄目的文章;

解決方案:

一、此時我們可以給選擇的欄目加change事件、然后將page重置為第一頁(本項目是從第0頁開始),具體代碼如下:

1.1 將分頁中動態(tài)綁定page  即:  :current-page="(params.page+1)"

<template>
 <el-pagination
  background
  :page-size="params.pageSize"
  :total="total"
  layout="prev, pager, next"
  :current-page="(params.page+1)" //將頁數(shù)進行動態(tài)綁定這樣利于我們操作頁數(shù)的改變
  @current-change="handlePaginationChange"
  >
 </el-pagination>
 
</template>

1.2  給select添加change事件

<template> 
 //下拉選擇框
 <el-select v-model="params.categoryId" placeholder="請選擇欄目" size='mini'
   @change="selectChange"
  >
  <el-option :key='c.id' v-for='c in categories' :label="c.name" :value="c.id">
  </el-option>
 </el-select>
</template>
 
export default{
 //重置page為0
 selectChange(){
  this.params.page=0;
 },
}

***:此時我們存在的問題是如果我們先點擊某一頁后然后再點擊欄目,那么會基于本頁去查詢選擇欄目的信息。

二、關于搜索時我的理想是對當前頁信息進行篩選、如果有人想要做出對所有數(shù)據(jù)的篩選、那么此時我們應該將keywords單獨拿出來進行,搜索這樣解決起來比加條件簡單許多。

只是我目前對多個信息篩選做出的一個解決方案、如果有更加友好的處理方法、希望能留言。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Vue-router不允許導航到當前位置(/path)錯誤原因以及修復方式

    Vue-router不允許導航到當前位置(/path)錯誤原因以及修復方式

    本文主要介紹了Vue-router不允許導航到當前位置(/path)錯誤原因以及修復方式,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Vue?watch監(jiān)聽使用的幾種方法

    Vue?watch監(jiān)聽使用的幾種方法

    watch是由用戶定義的數(shù)據(jù)監(jiān)聽,當監(jiān)聽的屬性發(fā)生改變就會觸發(fā)回調,這項配置在業(yè)務中是很常用。在面試時,也是必問知識點,一般會用作和computed進行比較。那么本文就來帶大家從源碼理解watch的工作流程,以及依賴收集和深度監(jiān)聽的實現(xiàn)
    2022-12-12
  • 基于vue-resource jsonp跨域問題的解決方法

    基于vue-resource jsonp跨域問題的解決方法

    下面小編就為大家分享一篇基于vue-resource jsonp跨域問題的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • vue中v-for 循環(huán)對象中的屬性

    vue中v-for 循環(huán)對象中的屬性

    這篇文章主要介紹了 vue中v-for 循環(huán)對象中的屬性,文章圍繞v-for 循環(huán)對象的相關資料展開詳細內(nèi)容,需要的朋友可以參考一下,希望對大家有所幫助
    2021-11-11
  • 源碼分析Vue3響應式核心之reactive

    源碼分析Vue3響應式核心之reactive

    這篇文章主要為大家詳細介紹了Vue3響應式核心之reactive的相關知識,文中的示例代碼講解詳細,對我們學習Vue3有一定的幫助,需要的可以參考一下
    2023-04-04
  • vue實現(xiàn)拖拽交換位置

    vue實現(xiàn)拖拽交換位置

    這篇文章主要為大家詳細介紹了vue實現(xiàn)拖拽交換位置,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Vue echarts繪制甘特圖的示例代碼

    Vue echarts繪制甘特圖的示例代碼

    甘特圖是一種條狀圖,直觀展示項目進展隨時間的走勢及聯(lián)系,其中,項目時間由橫軸表示,項目活動由縱軸表示,本文給大家介紹了Vue echarts繪制甘特圖的實現(xiàn)方法,并有詳細的代碼示例供大家參考,需要的朋友可以參考下
    2024-03-03
  • Vue中如何實現(xiàn)proxy代理

    Vue中如何實現(xiàn)proxy代理

    本篇文章主要介紹了Vue中如何實現(xiàn)proxy代理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • Vue使用虛擬鍵盤及中英文切換功能

    Vue使用虛擬鍵盤及中英文切換功能

    這篇文章主要給大家介紹了關于Vue使用虛擬鍵盤及中英文切換的相關資料,有時候在大型觸屏設備(如雙屏設備)中往往就沒有鍵盤去操作,所以就需要去建立一個虛擬鍵盤去操作,需要的朋友可以參考下
    2023-06-06
  • vue生命周期beforeDestroy和destroyed調用方式

    vue生命周期beforeDestroy和destroyed調用方式

    這篇文章主要介紹了vue生命周期beforeDestroy和destroyed調用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06

最新評論