vue搜不到c_vue实现条件叠加搜索的解决方法

案例场景:

现在有个文章管理模块,在该模块中有栏目选择、文章搜索、分页功能。这些功能改变其中一个都会对查询的文章有所改变。案例图如下:

实现方案有两种:

其一、我们开始可能会想到对每个功能绑定一个处理事件,但是这样做我们对数据的维护工作将大大加大,而且用这样方案做数据的叠加筛选不是很好。

方案二、我们将所有提交的数据放到一起维护然后再进行深度监听,当某一个值、或多个值的改变时,在去进行数据的查询,此时问题也变得更易于理解与维护,具体实现如下:

分页代码如下:

background

:page-size="params.pageSize"

@current-change="handlePaginationChange"

layout="prev, pager, next"

:total="total">

下拉选择框、搜索框代码如下:

//下拉选择框

v-loading="loadingCategory">

//搜索框

prefix-icon="el-icon-search"

v-model="params.keywords"

clearable>

数据维护、与方法(事件处理)

export default{

data(){

return{

... //其它的数据省略

params:{ //存储分页、搜索数据

page:0,

pageSize:3,

categoryId:undefined,

keywords:undefined

}

}

},

watch:{

params:{

handler(val){

this.findArticle(); //查找文章

},

deep:true //深度监听

},

methods:{

//处理分页

handlePaginationChange(page){

this.params.page=page-1;

},

//查询文章

findArticle(){

axios.get('',{params:this.params})

.then(()=>{})

.catch(()=>{})

}

}

}

小结:通过上面的双向数据绑定、我们将所有数据放到 params中集中管理(进行数据的监听)、当数据发生改变时我们去请求数据,来局部更新表格中的数据。

存在问题与解决:

1.这种实现方法的实现是基于所有数据的和查询、如果我们的需求是,当每次选择栏目时,都要显示第一页栏目的文章;

解决方案:

一、此时我们可以给选择的栏目加change事件、然后将page重置为第一页(本项目是从第0页开始),具体代码如下:

1.1 将分页中动态绑定page  即:  :current-page="(params.page+1)"

background

:page-size="params.pageSize"

:total="total"

layout="prev, pager, next"

:current-page="(params.page+1)" //将页数进行动态绑定这样利于我们操作页数的改变

@current-change="handlePaginationChange"

>

1.2  给select添加change事件

//下拉选择框

@change="selectChange"

>

export default{

//重置page为0

selectChange(){

this.params.page=0;

},

}

***:此时我们存在的问题是如果我们先点击某一页后然后再点击栏目,那么会基于本页去查询选择栏目的信息。

二、关于搜索时我的理想是对当前页信息进行筛选、如果有人想要做出对所有数据的筛选、那么此时我们应该将keywords单独拿出来进行,搜索这样解决起来比加条件简单许多。

只是我目前对多个信息筛选做出的一个解决方案、如果有更加友好的处理方法、希望能留言。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值