当前位置: 首页 > 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.zskr.cn/news/1437478.html

相关文章:

  • 3分钟完成GTNH中文汉化:新手完整安装指南
  • 容器之间ros2可发现topic没有数据
  • 小学期第三周
  • 云成本治理框架:优化云计算成本
  • 避坑指南:高通SA8255P平台Nor Flash烧录全流程与‘先擦后写’的血泪教训
  • Masa Mods中文汉化包:为你的Minecraft 1.21模组体验注入母语力量!
  • 2026年苏州本地防水补漏行业三家合规经营服务机构信息梳理分析 专业防水公司排名推荐(2026年5月防水补漏最新TOP权威排名) - 鼎壹万修缮说
  • 2026年5月新消息:寻找行业内比较好的铠装通信电缆品牌,这几家值得关注 - 2026年企业资讯
  • 仅限头部客户启用的Gemini深度监测模块(含暗网论坛追踪+小红书种草溯源)
  • 源站 IP 暴露被直接打穿?这套 AWS 纵深防御方案你一定用得上
  • 达梦 DMHS/DRS 数据同步技术解析
  • 2026产品专员职场提升能力的有效途径
  • 2026年6月浙江专业奶茶瓶生产厂商盘点:为何畅维包装备受品牌青睐? - 2026年企业资讯
  • 零起点Python机器学习快速入门【1.4】
  • 2026产品运营如何提升职场素养打造专业形象
  • 阜阳名酒回收服务评测:青春煮酒与同行横向对比 - 优质品牌商家
  • DSP28035双电压供电电路设计
  • WarcraftHelper:3步解锁魔兽争霸III现代游戏体验的技术指南
  • Linux上使用QEMU安装Android-x86虚拟机(转)
  • JAVA:字符串反转
  • 高并发系统设计:应对海量请求的技术实践
  • Gemini推送通知优化终极手册(2024Q2最新API v1.5实测数据+AB测试报告)
  • 纯视觉无感全域赋能 跨镜无缝接力重塑精细化安防能力技术解析方案
  • 递归函数的空间复杂度实例剖析
  • 2026年熊猫烟花性价比排名,靠谱的燃放公司推荐 - mypinpai
  • 数智空间动态重构 跨镜连续追踪筑牢各行业安全底座技术解析方案
  • 为什么你的Gemini引导转化率低于行业均值38%?——基于17家头部AI产品引导链路的逆向工程分析
  • Java程序设计(第3版)第四章——错误:空指针异常
  • 2026年5月新发布:湖南地区寻求专业营销策划团队的可靠选择指南 - 2026年企业资讯
  • 收藏!C语言入门基础知识大全2