uniapp踩坑小伎俩记录

2024-07-12 1525阅读

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

uniapp踩坑小伎俩记录
(图片来源网络,侵删)
// 假设你有一个页面路径是 '/pages/Home/index'
this.$router.push('/pages/home/index'); // 小写的 'home' 会导致找不到页面

2. 小程序平台差异

// 微信小程序中使用
uni.getSystemInfo({
  success: (res) => {
    console.log(res);
  }
});
// 支付宝小程序中使用
if (uni.getSystemInfoSync().platform === 'devtools') {
  // 特殊处理支付宝小程序
}

3.uniapp跨页面传值

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

    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. 本地存储传值 ( 适用于需要跨页面、甚至跨应用会话的数据传递。 )

    uni.setStorageSync('userInfo', { id: 123, name: 'Alice' });
    uni.navigateTo({
      url: '/pages/detail/detail'
    });
    //接受页面
    onLoad() {
      const userInfo = uni.getStorageSync('userInfo');
      console.log(userInfo); // 输出: { id: 123, name: 'Alice' }
    }
    

    3. bus传值

    // eventBus.js
        import Vue from 'vue';
        export default new Vue();
        
        **传值页面:**
        ```javascript
        import eventBus from '@/eventBus';
        eventBus.$emit('sendUserInfo', { id: 123, name: 'Alice' });
        uni.navigateTo({
          url: '/pages/detail/detail'
        });
        ```
        **接收值页面:**
        ```javascript
        import eventBus from '@/eventBus';
        onLoad() {
          eventBus.$on('sendUserInfo', (userInfo) => {
            console.log(userInfo); // 输出: { id: 123, name: 'Alice' }
          });
        }
        

    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 // 返回一级页面 }); `

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]