一、URL传值

  • list.wxml:
    1. <view class="playIcon"
    2. wx:for="{{list}}"
    3. id="{{item.id}}"
    4. wx:key="item.id"
    5. data-phone="{{item.phone}}"
    6. bindtap="clickRow">
    7. </view>
  • list.js:
    1. clickRow: function (e) {
    2. let phoneNum = e.currentTarget.dataset.phone;
    3. let id=e.currentTarget.id;
    4. wx.navigateTo({
    5. url: '/pages/list/listDetail?id=' + id,
    6. })
    7. }
  • listDetail.js:

    1. onLoad: function (options) {
    2. this.setData({
    3. id: options.id
    4. })
    5. }

    总结:
    1、wx.navigateTo:保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面。使用 wx.navigateBack 可以返回到原页面。小程序中页面栈最多十层。(可带参)
    2、wx.redirectTo:关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面。(可带参)
    3、wx.switchTab:跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面(不可带参)
    4、wx.reLaunch:关闭所有页面,打开到应用内的某个页面(可带参)
    5、wx.navigateBack :关闭当前页面,返回上一页面或多级页面。可通过 getCurrentPages 获取当前的页面栈,决定需要返回几层。(没有url属性,不可带参)

    二、全局变量

  • A页面

    1. var app = getApp();
    2. app.rowData = row;
  • B页面

    1. var app = getApp();
    2. var row = app.rowData;

    三、本地存储

  • A页面

    1. wx.setStorage({
    2. key: 'rowData',
    3. data: row,
    4. })
  • B页面

    1. var that = this;
    2. wx.getStorage({
    3. key: 'rowData',
    4. success: function (res) {
    5. that.setData({
    6. rowData: res.data
    7. });
    8. },
    9. })

    四、页面对象传值

    利用getCurrentPages获取上一级页面对象,调用setData方法进行传值 ```javascript let pages = getCurrentPages(); let prev = pages[pages.length - 2];

prev.setData({ … }); ```

五、组件传值

利用父组件和子组件之间进行传值