• 【微信小程序】传参存储


     

    目录

    一、本地数据存储 wx.setStorage wx.setStorageSync

     1.1、异步缓存 存取数据

    1.2、同步缓存 存取数据

    二、使用url跳转路径携带参数

    2.1、 wx.redirectTo({})      

    2.2、 wx.navigateTo({})   

    2.3、 wx.switchTab({})

    2.4 、wx.reLaunch({})

     2.5、组件跳转

    三、globalData(全局)


    一、本地数据存储 wx.setStorage wx.setStorageSync

    微信小程序中,大多数的数据操作都是异步的,包括像 wx.setStorage 这样的存储数据的方法。异步操作意味着当调用这些方法时,程序会继续执行后续的代码,而不会等待这些方法执行完成。当这些异步方法执行完成时,会通过回调函数来返回结果或执行后续逻辑。

    而同步操作则是指方法执行时会阻塞后续代码的执行,直到该方法执行完成才会继续执行后续代码。

    针对 wx.setStorage 方法,它是一个异步的数据存储方法,优势和区别主要体现在以下几点:

    1. 非阻塞:异步方法不会阻塞后续代码的执行,可以提高程序的响应速度和性能。

    2. 避免页面假死:如果使用同步方法进行数据存储,可能会导致页面假死,用户体验会受到影响。

    3. 更好的并发控制:异步方法适用于需要处理大量并发请求的场景,能更好地控制多个操作之间的执行顺序和结果处理。

    总的来说,异步方法能够更好地保持程序的响应性和用户体验,而同步方法可能会导致页面假死、响应迟缓等问题。因此,在小程序开发中,推荐使用异步方法进行数据操作,如 wx.setStorage,确保程序的流畅性和性能

     1.1、异步缓存 存取数据
    1. wx.setStorage({ // 异步存储数据
    2. key: 'user',
    3. data: 'zhangsan',
    4. })
    5. wx.getStorage({ //异步取出数据
    6. key: 'user',
    7. success: function(res) {
    8. console.log(res)
    9. },
    10. });
    1.2、同步缓存 存取数据
    1. wx.setStorageSync('name', '张三') //同步存储数据
    2. wx.getStorageSync('id') //同步取出数据

    二、使用url跳转路径携带参数

    2.1、 wx.redirectTo({})      

            不允许跳转到 tabBar

    1. ///关闭当前页面跳转
    2. wx.redirectTo({
    3. url:"/pages/index/index?id=999"
    4. })
    5. //跳转的页面上js 获取
    6. onLoad(options) {
    7. console.log(options);
    8. },
    2.2、 wx.navigateTo({})   

            不允许跳转到 tabBar

    1. //保留当前页面,跳转到应用内的某个页面
    2. wx.navigateTo({
    3. url: '/pages/user/index?id=999'
    4. });
    5. //跳转的页面上js 获取
    6. onLoad(options) {
    7. console.log(options);
    8. },
    2.3、 wx.switchTab({})

        只能跳转到tabBar页面且不能携带参数

    1. wx.switchTab({
    2. url: '/pages/index/index'
    3. })

    2.4 、wx.reLaunch({})

        关闭所有页面,打开到应用内的某个页面

    1. wx.reLaunch({
    2. url: '/pages/index/index?id=999'
    3. })
    4. //跳转的页面上js 获取
    5. onLoad(options) {
    6. console.log(options);
    7. },
     2.5、组件跳转

    效果跟上面一模一样,注意事项也是一样,只是形式不同罢了

    1. <navigator open-type="switchTab" url="/a">/navigator>
    2. <navigator open-type="reLaunch" url="/a?id=1">navigator>
    3. <navigator open-type="redirectTo" url="/a?id=1">navigator>
    4. <navigator open-type="navigateTo" url="/a?id=1">navigator>

    三、globalData(全局)

      globalData类似vue中的vuex,当globalData中数据发生改变时,页面上之前赋值信息不回发生改变,如果要求改变的话也需要改变,可以在切换页面的时候 在onShow中再重新赋值。

    1. // app.js 类似vuex 全局可以
    2. App({
    3. globalData:{},
    4. })
    5. // a.js
    6. const app = getApp();
    7. app.globalData.token='sdasdasd';
    8. //b.js
    9. const app = getApp();
    10. console.log(app.globalData.token) //sdasdasd

  • 相关阅读:
    Apache shiro 漏洞总结
    C++基础——输入输出和缺省参数讲解
    【数学建模】2023华为杯研究生数学建模F题思路详解
    RabbitMQ课件(尚)
    配置Mysql与注册登录模块(下)
    携手聚力 共赢数智未来丨物通博联招募生态合作伙伴
    【微信小程序】一文读懂小程序的生命周期和路由跳转
    MySQL数据表操作实战
    第2/100天 阅读笔记
    PostgreSQL安装异常,服务无法启动导致创建服务器超时
  • 原文地址:https://blog.csdn.net/m0_61382303/article/details/136562751