在本次阶段中,实现了多类别推荐(景点/住宿/美食)、推荐栏横向滑轮滚动、美观的详情侧栏等功能。本文将详细介绍这些功能的设计目的、核心代码、遇到的问题与解决方案。
一、功能与设计目标
1. 多类别推荐列表
让用户不仅能获取景点推荐,还能一键切换查看住宿和美食,提升出行决策效率。
2. 推荐栏滑轮滚动
让用户在推荐栏区域内用鼠标滚轮即可横向浏览更多推荐,提升交互体验,适配卡片较多的场景。
3. 详情侧栏美化
让用户点击“查看详情”后,左侧弹出的详情侧栏更美观、信息更清晰,提升整体界面质感。
二、后端实现(Node.js + Express)
1. 支持多类别的高德POI搜索

将radius 调大到 10000,避免小城市中心点附近POI不足。
2. 高德API请求封装

封装高德API请求,支持动态传入 types、keywords、radius 等参数,从而在搜索时可以调整获取的类别,并且便于后续的扩展和调试。
3. 组装返回数据

三、前端实现(React)
1. 多类别推荐栏与选项卡


在前端中实现多类别推荐栏,并且保证选项卡切换时,category 状态变化,自动请求对应类别数据。以及修改loading 文案根据类别动态变化。
2. 推荐栏横向滑轮滚动

实现在推荐栏中使用鼠标滑轮进行滚动,不必局限于使用滚动条进行滚动,提升用户交互体验,并且在推荐内容较多时,用户的使用会更方便。
3. 详情侧栏美化


之前详情侧栏的前端过于简单,在之前的基础上对前端进行优化。
四、效果展示


五、遇到的问题与解决方案
1. 酒店/美食推荐查不到数据?
- 某些城市中心点附近POI较少,需调大搜索半径保证有足够的搜索范围。
- city参数有时会影响结果,不传city反而更全。
2. 推荐栏滑轮滚动不生效?
- 没有正确绑定 wheel 事件,或 ref 没有指向推荐栏DOM。用 useRef 绑定推荐栏DOM,并在 useEffect 里添加 wheel 事件监听。
1万+

被折叠的 条评论
为什么被折叠?



