小程序-传值

        // 第一种:地址栏 ? 后面传值,在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 @ 2019-12-21 09:54  吴小明-  阅读(176)  评论(0编辑  收藏  举报