惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Attack and Defense Labs
Attack and Defense Labs
宝玉的分享
宝玉的分享
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
D
Darknet – Hacking Tools, Hacker News & Cyber Security
V
Vulnerabilities – Threatpost
博客园_首页
Engineering at Meta
Engineering at Meta
F
Fortinet All Blogs
C
Cyber Attacks, Cyber Crime and Cyber Security
罗磊的独立博客
V
Visual Studio Blog
Know Your Adversary
Know Your Adversary
Hacker News - Newest:
Hacker News - Newest: "LLM"
美团技术团队
L
LINUX DO - 最新话题
The Last Watchdog
The Last Watchdog
博客园 - 三生石上(FineUI控件)
T
Tor Project blog
云风的 BLOG
云风的 BLOG
N
Netflix TechBlog - Medium
MyScale Blog
MyScale Blog
The GitHub Blog
The GitHub Blog
有赞技术团队
有赞技术团队
I
InfoQ
Last Week in AI
Last Week in AI
V2EX - 技术
V2EX - 技术
量子位
S
Secure Thoughts
L
LangChain Blog
The Hacker News
The Hacker News
H
Help Net Security
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
小众软件
小众软件
K
Kaspersky official blog
Security Archives - TechRepublic
Security Archives - TechRepublic
Google Online Security Blog
Google Online Security Blog
I
Intezer
Vercel News
Vercel News
Hacker News: Ask HN
Hacker News: Ask HN
Cisco Talos Blog
Cisco Talos Blog
Google DeepMind News
Google DeepMind News
S
Securelist
阮一峰的网络日志
阮一峰的网络日志
G
Google Developers Blog
Help Net Security
Help Net Security
Martin Fowler
Martin Fowler
爱范儿
爱范儿
Y
Y Combinator Blog
C
Check Point Blog

吖远zzyの博客

记录一下豆包视频去水印的研究过程,以及fallback_api加密数据qAAB开头数据的解密。 | 吖远zzyの博客 解决华为开发者工具 DevEco Studio 登录跳转 localhost:10101 端口被阻止问题 | 吖远zzyの博客 微信小程序个人资质审核血泪史:踩坑,从反复被拒到神奇过审 | 吖远zzyの博客 如何实现公众号自动回复或做一个短视频无水印解析机器人? | 吖远zzyの博客 以后在手机上用 Termux 和 GitHub Actions 更新 Hexo 博客 | 吖远zzyの博客 必备!这款万能小程序能给抖音/豆包视频图集去除水印、还有有趣的测反应、玩成语模拟工具。 自制的一些免费API接口第二弹(获取QQ昵称、头像、抖音/豆包视频去水印等...) 告别原生导航栏:微信小程序自定义导航栏完美适配方案 在安卓手机上运行OpenClaw?当然可以,用Termux折腾OpenClaw安装QQ机器人的踩坑记录... | 吖远zzyの博客 个人开发工具之抖音直播录制工具:一款功能强大的Android直播录制应用 UniApp中Canvas绘图的易错点与踩坑指南 QQ频道机器人与UniApp开发:常见踩坑点与解决方案 UniApp中Canvas绘图不显示的常见问题与解决方案 Hexo博客实现随机文章功能的完整教程 QQ频道机器人Android客户端使用指南 | 吖远zzyの博客 安卓版QQ频道机器人APP客户端插件开发指南 | 吖远zzyの博客 2024年AI编程助手深度评测:哪款最适合你? uni-app地图定位踩坑记:地图功能和定位的那些坑 uni-app文件上传踩坑记:图片处理和上传全攻略 uni-app表单验证踩坑记:这些坑我替你踩过了 uni-app安全防护指南:构建可靠的跨端应用 uni-app性能优化指南:从加载到渲染的全方位提升 uni-app动画效果实战:从基础到高级的动画实现指南 uni-app组件开发实战:从基础到进阶的最佳实践 uni-app网络请求与缓存策略:构建高效的数据层 uni-app状态管理进阶:Vuex最佳实践与性能优化 uni-app路由与页面跳转:最佳实践与踩坑指南
uni-app开发踩坑记录:新手必看的常见问题与解决方案
吖远zzy · 2024-04-20 · via 吖远zzyの博客
  1. 1. 1. 页面相关问题
    1. 1.1. 1.1 页面返回数据刷新问题
    2. 1.2. 1.2 页面返回卡顿问题
  2. 2. 2. 样式兼容问题
    1. 2.1. 2.1 不同平台样式差异
    2. 2.2. 2.2 滚动穿透问题
  3. 3. 3. 网络请求问题
    1. 3.1. 3.1 请求超时处理
    2. 3.2. 3.2 登录失效处理
  4. 4. 4. 性能优化问题
    1. 4.1. 4.1 图片加载优化
    2. 4.2. 4.2 列表卡顿问题
  5. 5. 5. 小程序相关问题
    1. 5.1. 5.1 包体积超限
    2. 5.2. 5.2 微信授权问题
  6. 6. 6. 开发工具问题
    1. 6.1. 6.1 HBuilderX卡顿
    2. 6.2. 6.2 真机调试问题
  7. 7. 7. 总结建议

uni-app开发踩坑记录:新手必看的常见问题与解决方案 0 次阅读

在uni-app开发中,总会遇到一些让人头疼的问题。本文整理了一些常见的坑和解决方案,希望能帮助大家少走弯路。

1. 页面相关问题

1.1 页面返回数据刷新问题

问题描述:
从A页面跳转到B页面,在B页面修改了数据后返回A页面,发现A页面的数据没有更新。

解决方案:

  1. 使用事件总线:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    // 在B页面修改数据后发送事件
    uni.$emit('updateData', { data: '新数据' })

    // 在A页面监听事件
    onShow() {
    uni.$on('updateData', this.handleUpdate)
    },
    onHide() {
    uni.$off('updateData', this.handleUpdate)
    }
  2. 使用页面生命周期:

    1
    2
    3
    4
    // 在A页面的onShow中刷新数据
    onShow() {
    this.loadData() // 重新加载数据
    }

1.2 页面返回卡顿问题

问题描述:
使用uni.navigateBack返回上一页时出现明显卡顿。

解决方案:

  1. 检查页面是否有大量数据或复杂计算
  2. 使用分页加载代替一次性加载
  3. 在返回前清理不必要的定时器和监听器
  4. 避免在onShow中进行耗时操作

2. 样式兼容问题

2.1 不同平台样式差异

问题描述:
同样的样式在不同平台(iOS、Android、H5)显示效果不一致。

解决方案:

  1. 使用flex布局代替固定宽高
  2. 避免使用复杂的CSS3特性
  3. 使用条件编译处理平台差异:
    1
    2
    3
    4
    5
    6
    /* #ifdef H5 */
    .box { height: 100vh; }
    /* #endif */
    /* #ifdef MP */
    .box { height: 100%; }
    /* #endif */

2.2 滚动穿透问题

问题描述:
弹窗打开时,背景页面仍可滚动。

解决方案:

  1. 弹窗打开时给body添加类:

    1
    2
    3
    4
    // 打开弹窗时
    document.body.style.overflow = 'hidden'
    // 关闭弹窗时
    document.body.style.overflow = 'auto'
  2. 使用@touchmove.prevent阻止滚动:

    1
    <view class="mask" @touchmove.prevent></view>

3. 网络请求问题

3.1 请求超时处理

问题描述:
网络请求偶尔超时,导致页面卡死。

解决方案:

  1. 设置合理的超时时间
  2. 添加重试机制
  3. 显示加载提示和错误提示:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    uni.showLoading({
    title: '加载中...'
    })

    try {
    await this.loadData()
    } catch (e) {
    uni.showToast({
    title: '加载失败,请重试',
    icon: 'none'
    })
    } finally {
    uni.hideLoading()
    }

3.2 登录失效处理

问题描述:
token过期后继续请求接口导致报错。

解决方案:

  1. 统一处理token过期:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    // 请求拦截器中处理
    if (response.code === 401) {
    // 清除登录信息
    uni.clearStorageSync()
    // 跳转登录页
    uni.reLaunch({
    url: '/pages/login/index'
    })
    }

4. 性能优化问题

4.1 图片加载优化

问题描述:
页面中图片较多,加载慢且占用内存。

解决方案:

  1. 使用懒加载:

    1
    <image :src="url" lazy-load></image>
  2. 压缩图片

  3. 使用CDN加速

  4. 预加载重要图片

4.2 列表卡顿问题

问题描述:
长列表滚动时出现卡顿。

解决方案:

  1. 使用分页加载
  2. 避免在滚动时进行复杂计算
  3. 使用骨架屏优化体验
  4. 减少不必要的数据绑定

5. 小程序相关问题

5.1 包体积超限

问题描述:
小程序打包后提示超出大小限制。

解决方案:

  1. 使用分包加载
  2. 压缩图片和资源文件
  3. 删除未使用的组件和文件
  4. 使用CDN加载大文件

5.2 微信授权问题

问题描述:
获取用户信息时授权弹窗显示不出来。

解决方案:

  1. 使用button触发授权:

    1
    2
    3
    <button open-type="getUserInfo" @getuserinfo="handleGetUserInfo">
    获取用户信息
    </button>
  2. 检查是否已授权:

    1
    2
    3
    4
    5
    6
    7
    uni.getSetting({
    success: (res) => {
    if (!res.authSetting['scope.userInfo']) {
    // 未授权,显示授权按钮
    }
    }
    })

6. 开发工具问题

6.1 HBuilderX卡顿

问题描述:
HBuilderX运行缓慢,经常卡死。

解决方案:

  1. 关闭不需要的项目
  2. 定期清理缓存
  3. 更新到最新版本
  4. 增加内存分配

6.2 真机调试问题

问题描述:
真机调试时连接不上设备。

解决方案:

  1. 检查USB调试是否开启
  2. 更新手机驱动
  3. 更换数据线
  4. 重启开发工具和手机

7. 总结建议

  1. 多看官方文档和更新日志
  2. 保持良好的代码习惯
  3. 做好版本管理
  4. 常见问题记录总结
  5. 定期更新开发工具

如果觉得文章对你有帮助,欢迎点赞、评论、分享,你的支持是我继续创作的动力!