uniapp踩坑小伎俩记录

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

    // 假设你有一个页面路径是 '/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' }

}

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

    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' }
    }

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

相关推荐
YIAN32 分钟前
LangChain JS 工具调用实战:基于 DeepSeek-V4-Flash 实现本地文件读取 AI 代码助手(完整可运行源码)
javascript·langchain·前端框架
尼斯湖皮皮怪38 分钟前
iceCoder 记忆系统深度分析
前端·javascript
爸爸6191 小时前
07 ArkTS 基础类型与接口定义:从 TypeScript 到鸿蒙的类型升级
javascript·华为·typescript·harmonyos·鸿蒙系统
默_笙2 小时前
🌏 MCP 是 AI 界的 USB-C:一个协议让所有模型都能用上所有工具
前端·javascript
月光刺眼4 小时前
用LangChain 打造第一个 Agent:LLM 大脑与 Tool 手脚的完整闭环
javascript·人工智能·全栈
西西学代码4 小时前
Flutter---底部导航栏(2)
开发语言·javascript·flutter
阿奇__5 小时前
uniapp微信小程序图片上传含回显组件(拍照,相册)
前端·javascript·vue.js
浮江雾6 小时前
Flutter第二节----Dart中的常量与变量
开发语言·前端·javascript·flutter·入门
2501_915909066 小时前
IPA 深度混淆是什么意思?从混淆强度到实际效果的解读
android·ios·小程序·https·uni-app·iphone·webview
大家的林语冰6 小时前
Rust 再次打败 Go,Astro 7 首发,什么叫“万物皆可锈化“!
前端·javascript·性能优化