小程序-传值

复制代码
        // 第一种:地址栏 ? 后面传值,在detail.js中onLoad生命周期中接收参数
        toDetail(e){
            var id=10,
                title="我是详情页";
            wx.navigateTo({
                url: '/pages/detail/detail?id=' + id + '&title=' + title,
            })
        }

        // detail.js
        onLoad: function (options) {
            console.log(options)
        },
复制代码
复制代码
        // 第二种:在app.js中,定义globalData对象,这是全局的
        App({
            globalData:{
                // 这里面写的参数在任何页面都能拿到
                name:"吴小明"
            }
        })

        // detail.js定义常量接收app.js
        const app = getApp();
        // 在onLoad、onReady、onShow生命周期中可以拿到app
        Page({
            onLoad(){
                console.log(app)
                this.setName()
            },
            onReady(){
                console.log(app)
            },
            onShow(){
                console.log(app)
            },
            setName(){
                // 如果需要,可以在这里重新设置app.globalData.name的值
                var self=this;
                self.setData({
                    name:app.globalData.name
                })
            }
        })
复制代码
        // 第三种方式:利用本地缓存,这种方式最常用。
        // wx.setStorageSync("title","111111111")设置值,在需要的页面通过wx.getStorageSync("title")
        // 第四种方式:通过 data-xxx 将值传过去
            <view bindtap="goDetail" data-productId="{{item._id}}"></view>

            把该商品的id传过去,到了详情页再由这个id去请求到相应的数据。
            在详情页通过事件对象event拿到传参。 

            注意:在跳转到详情页时,也可以将这个商品的详细信息传过去,但是如果是秒杀的活动,一秒钟后可能这个商品已经没有了,等到打开详情页的时候还是在列表页的数据,所以这种方法不严谨。
posted @   吴小明-  阅读(179)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结
点击右上角即可分享
微信分享提示