Vue移动端

本文介绍了在Vue移动端应用中实现文章搜索功能和联想建议功能的方法。使用Vant的搜索框组件,并创建了搜索结果、联想建议和搜索历史三个组件。通过变量控制组件的显示,利用自定义事件和props在父子组件间传递信息。同时,通过watch监听搜索框值变化,封装异步函数进行联想数据请求,并采用lodash的debounce函数进行防抖处理。此外,还实现了搜索关键字高亮及搜索结果的展示与交互功能。
摘要由CSDN通过智能技术生成

文章搜索功能

头部搜索框使用vant 中的搜索框组件

<form action="/">
  <van-search  v-model="value" show-action placeholder="请输入搜索关键词"
    @search="onSearch" @cancel="onCancel" />
</form>
<!-- 在 van-search 外层增加 form 标签,且 action 不为空,即可在 iOS 输入法中显示搜索按钮 -->
<!-- search 事件在点击键盘上的搜索/回车按钮后触发,cancel 事件在点击搜索框右侧取消按钮时触发 -->

因业务需求, 分别创建 搜索结果 、联想建议 、搜索历史 三个组件

设置一个变量, 变量为真则显示 搜索结果 组件

变量为假, 当搜索框有值时, 显示 联想建议 组件, 无值, 显示 搜索历史 组件

联想建议功能

给父组件注册一个自定义事件, 当父组件中的搜索框输入值时, 将内容传给子组件, 子组件用 props 来接收, 再使用 watch 来监听传来的搜索框值的变化

封装联想的数据请求, 定义一个异步函数来调用该请求, 将函数放入 watch 中, 一旦数据改变,就会发送请求,获取新的联想数据

// 因为该组件是通过判断搜索框的值来调用的, 所以输入第一个值,不会触发请求, 需要设置immediate: true , 页面初始化时立即执行

// 为了防止频繁发生请求, 可以在调用该函数时加一个定时器来实现防抖功能

防抖 推荐使

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值