• uniapp踩坑小伎俩记录


    1. 页面路径和文件名大小写问题

    1. // 假设你有一个页面路径是 '/pages/Home/index'
    2. this.$router.push('/pages/home/index'); // 小写的 'home' 会导致找不到页面

    2. 小程序平台差异

    1. // 微信小程序中使用
    2. uni.getSystemInfo({
    3. success: (res) => {
    4. console.log(res);
    5. }
    6. });
    7. // 支付宝小程序中使用
    8. if (uni.getSystemInfoSync().platform === 'devtools') {
    9. // 特殊处理支付宝小程序
    10. }

    3.uniapp跨页面传值

    • 使用 URL 参数传值
    • 使用全局状态管理(Vuex)
    • 全局对象传值
    • 本地存储传值
    • 使用事件总线(Event Bus)
    1. 使用 URL 参数传值
    1. uni.navigateTo({
    2. url: '/pages/detail/detail?id=123&name=Alice'
    3. });
    4. //接受页面
    5. onLoad(options) {
    6. const { id, name } = options;
    7. console.log(id, name); // 输出: 123 'Alice'
    8. }

    2. 全局对象传值 ( 可以使用全局对象 getApp() 或全局变量。 )

    const app = getApp();
    app.globalData.userInfo = { id: 123, name: ‘Alice’ };

    uni.navigateTo({
    url: ‘/pages/detail/detail’
    });
    // 接受页
     

    onLoad() {
    const app = getApp();
    const userInfo = app.globalData.userInfo;
    console.log(userInfo); // 输出: { id: 123, name: ‘Alice’ }
    }

    3. 本地存储传值 ( 适用于需要跨页面、甚至跨应用会话的数据传递。 )

    1. uni.setStorageSync('userInfo', { id: 123, name: 'Alice' });
    2. uni.navigateTo({
    3. url: '/pages/detail/detail'
    4. });
    5. //接受页面
    6. onLoad() {
    7. const userInfo = uni.getStorageSync('userInfo');
    8. console.log(userInfo); // 输出: { id: 123, name: 'Alice' }
    9. }

    3. bus传值

    1. // eventBus.js
    2. import Vue from 'vue';
    3. export default new Vue();
    4. **传值页面:**
    5. ```javascript
    6. import eventBus from '@/eventBus';
    7. eventBus.$emit('sendUserInfo', { id: 123, name: 'Alice' });
    8. uni.navigateTo({
    9. url: '/pages/detail/detail'
    10. });
    11. ```
    12. **接收值页面:**
    13. ```javascript
    14. import eventBus from '@/eventBus';
    15. onLoad() {
    16. eventBus.$on('sendUserInfo', (userInfo) => {
    17. console.log(userInfo); // 输出: { id: 123, name: 'Alice' }
    18. });
    19. }

    uniapp跳转的几种方式

    1. uni.navigateTo:保留当前页面,跳转到应用内的某个页面,使用 `uni.navigateBack` 可以返回到原页面。 “`javascript uni.navigateTo({ url: ‘/pages/detail/detail?id=123&name=Alice’ });

    2. uni.redirectTo:关闭当前页面,跳转到应用内的某个页面。 “`javascript uni.redirectTo({ url: ‘/pages/detail/detail?id=123&name=Alice’ });

    3. uni.switchTab:跳转到 `tabBar` 页面,并关闭其他所有非 tabBar页面。 uni.switchTab({ url: '/pages/tabbar/index' });

    4. uni.reLaunch:关闭所有页面,打开到应用内的某个页面。 javascript uni.reLaunch({ url: ‘/pages/detail/detail?id=123&name=Alice’ });

    5. uni.navigateBack:关闭当前页面,返回上一页面或多级页面。 `javascript uni.navigateBack({ delta: 1 // 返回一级页面 }); `

  • 相关阅读:
    perfma:JVM工具
    Java多线程-synchronized同步方法及同步块简述
    信息学奥赛一本通:1141:删除单词后缀
    postgresql之integerset
    Thinkphp内核工单系统源码商业开源版 多用户+多客服+短信+邮件通知
    OpenHD改造实现廉价高清数字图传(树莓派+PC)—(五)gstreamer视频采集、传输和显示
    elementplus、vxe、surely 三种表格组件的封装
    王道考研计算机网络——传输层
    c语言字符串相关函数的分析
    Scala 简介一
  • 原文地址:https://blog.csdn.net/Black____White/article/details/140347468