• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

vue 搞代码 4年前 (2022-01-08) 19次浏览 已收录 0个评论

这篇文章主要为大家详细介绍了vue实现条件叠加搜索的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

案例场景:

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

实现方案有两种:

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

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

分页代码如下:

   

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

  //下拉选择框   //搜索框  

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

 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)”

   

1.2  给select添加change事件

  //下拉选择框    export default{ //重置page为0 selectChange(){ this.params.page=0; }, }

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

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

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持gaodaima搞代码网

以上就是vue实现条件叠加搜索的解决方法的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:vue实现条件叠加搜索的解决方法

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址