当前位置: 首页 > news >正文

第一篇:uniapp+Django 互动功能全流程(登录缓存→点赞 / 收藏 / 评论列表显示)

前言

在社交类小程序 / APP 中,点赞、收藏、关注、评论是最核心的互动模块。很多同学开发时会遇到:登录后 ID 错乱、列表不显示、数据为空、跳转失效等问题。本篇从「缓存修复→接口对接→页面显示」一步步实现,保证可直接落地。


一、修复登录缓存:从根源解决 user_id 错乱

问题场景

  • 登录明明是 92,页面拿到却是 1/93 / 空
  • 点赞 / 评论接口永远查不到数据
  • 清除缓存才正常,一刷新又错

解决方案:登录页强制写入缓存

打开login.vue,登录成功后必须加这一行

javascript

运行

// 登录成功 if (result.code === 200) { uni.showToast({ title: "登录成功", icon: "success" }); // 全局状态 this.$global.setUserId(result.user_id); // ✅ 强制写入本地缓存(所有页面共用) uni.setStorageSync('user_id', result.user_id); setTimeout(() => { uni.reLaunch({ url: "/pages/blog/blog_home" }); }, 1500); }

验证方法

任意页面执行:

javascript

运行

console.log(uni.getStorageSync('user_id')) // 永远输出当前登录ID,不再错乱

二、统一后端接口规范(Django)

互动逻辑统一规则:

  • 点赞 / 收藏 / 评论我:查询to_user_id = 当前登录ID
  • 我关注的人:查询from_user_id = 当前登录ID
  • 粉丝:查询to_user_id = 当前登录ID && type=follow

核心接口(已优化可直接用)

  1. 点赞 / 收藏我的列表
  2. 评论我的列表
  3. 关注 / 粉丝列表

后端统一返回结构:

json

{ "code": 200, "message": "success", "data": [ { "user_id": 31, "username": "user_1", "avatar": "https://xxx.png", "content": "评论内容" // 评论独有 } ] }

三、三大互动页面:从无到完美显示

1. 点赞列表页面 like_detail.vue

功能:显示谁点赞 / 收藏了我

  • 正确读取缓存user_id
  • 请求格式统一 JSON
  • 无数据友好提示
  • 加载状态防抖动

javascript

运行

async initLikeData() { this.loading = true try { const currentUserId = uni.getStorageSync('user_id') const res = await uni.request({ url: "http://localhost:8000/interaction/getLikeList", method: "POST", header: { "Content-Type": "application/json" }, data: JSON.stringify({ user_id: currentUserId }) }) if (res.data.code === 200) { this.list = res.data.data || [] } } finally { this.loading = false } }

2. 评论列表页面 comment_detail.vue

功能:显示谁评论了我的博客

  • 展示用户名、头像、评论内容
  • 内容为空自动兜底
  • 请求格式与点赞保持一致

javascript

运行

async initCommentData() { this.loading = true try { const currentUserId = uni.getStorageSync('user_id') const res = await uni.request({ url: "http://localhost:8000/interaction/getCommentList", method: "POST", header: { "Content-Type": "application/json" }, data: JSON.stringify({ user_id: currentUserId }) }) if (res.data.code === 200) { this.list = res.data.data || [] } } finally { this.loading = false } }

3. 关注 / 粉丝页面 follow_detail.vue

功能:显示我的粉丝、我关注的人

  • 列表样式统一
  • 空状态提示
  • 加载动画保持全局一致

四、本篇总结

本篇完成: ✅ 登录缓存彻底修复,user_id 永不错乱 ✅ 三大互动列表后端接口逻辑正确 ✅ 前端请求格式统一,不再出现空数据 ✅ 点赞 / 评论 / 关注列表正常显示

http://www.jsqmd.com/news/926144/

相关文章:

  • HTML5 新特性概览:探索现代 Web 的强大能力
  • 从手动混乱到智能有序:Irony Mod Manager如何让Paradox游戏模组管理效率提升3倍?
  • 给你的 Agent 上一场“砍价考试“:用 Cattle Trade 思路搭一个最小博弈测评
  • VoxCPM 语音模型新手部署与调用全指南
  • Django+Vue智慧农业管理系统源码+论文
  • QGIS新手避坑指南:从高德路网数据到空间分析的全流程实操
  • 云成本治理框架:优化云计算成本
  • 别再当‘黑盒’模型受害者了!用Python的shap库5分钟看懂你的XGBoost模型决策
  • AI自进化的可能与形态:一种结构工程的推演
  • 2026年国产质量流量计TOP5排行 核心参数实测对比 - 优质品牌商家
  • 避坑指南:高通SA8255P平台Nor Flash烧录全流程与‘先擦后写’的血泪教训
  • Masa Mods中文汉化包:为你的Minecraft 1.21模组体验注入母语力量!
  • 剧本逻辑断层?角色扁平?对话生硬?,Gemini剧本辅助系统5大诊断模块+实时修复建议全披露
  • 2026年苏州本地防水补漏行业三家合规经营服务机构信息梳理分析 专业防水公司排名推荐(2026年5月防水补漏最新TOP权威排名) - 鼎壹万修缮说
  • 2026年5月地热网片选购指南:实体厂家综合实力与选型要点解析 - 2026年企业资讯
  • C51代码银行空间保留技术详解与实践
  • spice模型导入simulink时遇到标识符 n70ru未在 ‘definitions‘ 部分中定义
  • 结构化编程:AI工业化编程的探索
  • 2026年当下,河北铁艺护栏实力厂家如何实现高性价比? - 2026年企业资讯
  • 【Gemini印度语言工程白皮书】:从Devanagari脚本识别到低资源方言微调的5层技术栈
  • 2026年高评价硅酮胶实测评测:广东胶粘剂oem厂家/广东食品级硅酮胶/广东高温硅酮胶/性能与场景适配对比 - 优质品牌商家
  • 2026年推荐网站设计实力公司,哪家性价比高? - myqiye
  • 2026年q2四川聚氨酯地坪专业厂家技术能力解析:四川地坪翻新/四川室外地坪/四川无溶剂聚氨酯/优选指南 - 优质品牌商家
  • 从生物学视角解析智能本质:AI与人类认知的鸿沟
  • 2026年5月新消息:寻找行业内比较好的铠装通信电缆品牌,这几家值得关注 - 2026年企业资讯
  • 【路径规划】基于人工势场法实现多机器人系统的群集编队控制附matlab代码
  • 【统计法规】3.6服务人民原则 ★ ★ ★
  • Go语言网络编程深度解析
  • 湖北能家校协同的播音艺考培训,武汉星干线艺术学校怎样? - myqiye
  • 江苏昱杨机械:近50年积淀的耐磨管道技术与服务解析 - 优质品牌商家