后台管理----搜索,重置功能

本文详细介绍了如何在前端实现一个搜索功能,包括配置搜索表单、监听搜索按钮、调用网络请求以及组件间通信。重点讲解了如何通过事件传递在父组件中调用子组件方法,以及代码的复用和封装。同时,提出了将搜索逻辑抽取为hooks以提高代码复用性的优化建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.首先我们要拿到所有搜框内最新输入的东西

2.更改我们搜索框中相关配置选项,使我们内容相对应

import {IForm} from '@/base-ui/from'
  const searchFormConfig:IForm= {
  // 决定文字的宽度
   labelWidth:'120px',
  // 决定输入框的之间的边距
  itemStyle:{
   padding:"20px 60px"
   },
    // 定义搜索框的类型
    formItems:[
     {
      field:'name',
       type:"input",
       label:'用户名',
       placeholder:'请输入用户名'
     },
      {
      field:'realname',
       type:'input',
       label:'真实姓名',
       placeholder:'请输入用户真实姓名'
     },
     {
      field:'cellphone',
       type:'input',
       label:'电话号码',
       placeholder:'请输入电话号码'
     },
     {
       field:'enable',
       type:"select",
       label:'用户状态',
       placeholder:'请选择用户状态',
       options:[
         {title:'启用',value:1},
         {title:'禁用',value:0}
       ]
     },
      {
      field:"createAt",
       type:'datepicker',
       label:'创建时间',
       otherOptions:{
         startPlaceholder:"开始时间",
         endPlaceholder:"结束时间",
         type:"daterange"
       }
     }
   ]
   }
export default searchFormConfig

效果展示:

第3步: 监听这个搜索按钮:

   <el-button type="primary" @click="handleQueryClick">搜索</el-button>

第4步:然后在下面做一个实现:当用户点击的时候

注意点:

第一点:像在setup 里面的代码只能发送一次网络请求,有点类似于组件的create就是在组件创建的时候调用一次

第二点:圈起来的代码,应该不只执行一次,应该执行很多次的

 第三点:将这个网络请求可以写成一个方法,每次只要调用这个方法就可以发一次网络请求

第四点:user页面有一个page-search 的组件 和 一个page-content 的组件,pageData的函数在pageContent 的里面的,搜索按钮是在page-search 的,就意味着在page-search.vue 页面点击搜索按钮时,需要在page-content.vue 页面调用一次 pageData 这个函数。

可以做样做:

      1.当点击了搜索按钮之后,把这个事件传给user 页面

      2.因为user.vue 组件是这两个组件的父组件

      3.在由父组件去调用这个方法

第五点:在page-search.vue 发出一个事件

 第六点:在user 父组件中监听这两个事件(重置,搜索)

  <page-search :searchFormConfig="searchFormConfig" 
    @resetBtnClick="handleResetClick"
    @queryBtnClick="handleQueryClick"
    ></page-search>

第七点:拿到page-contents 组件对象,去调用这个组件的对象的内部方法

第八点:通过ref 拿到这个组件对象

 第九点:拿到这个组件对象,重置和搜索都去调用组件内的方法

 第十点:在搜索事件里面调用这个方法的时候的时候把参数也传过去

第十一点:在page-content 页面,在getPageData函数里面接收传过来的参数,在用展开运算符将里面的属性全部都拿到,然后放到queryInfo 里面。

 

优化

1.例如这段代码在以下组件中都会用到

2.我们可以单独的把他封装成一个hook

  •  在src/ hooks/usePageSearch 文件
  • 然后将上面框中的代码剪贴到到这个文件中来

到时候直接在user 组件中调用这个方法就可以了

效果展示:

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值