微信小程序传值的几种方式

第一种:通过链接传值(跳转页面传值)

index.wxml

<view>{{ msg }}</view>
<button bindtap="clickMe">点击我</button>
 
clickMe: function () {//点击事件
wx.navigateTo({
url: '../1111?id=1'//传值
})
this.setData({ msg: "Hello World" })
},
跳传页面接受值
onLoad: function (options) {
console.log('query',options)
},

第二种方式 data-* || id(适合在本页面传值)

<button bindtap="clickMe" data-id='{{key}}'>点击我</button>//当然key在data中必须有值
<button bindtap="clickMe" id='{{key}}'>点击我</button>
 
 
var id = e.currentTarget.id;
var id = e.currentTarget.dataset.id;
console.log(id)

通过使用data - xxxx 的方法标识来传值

通过使用data - xxxx 的方法标识来传值,xxxx可以自定义取名 比my.wxml中的data-index。

如何获取data-xxxx传递的值?
在js的bindtap的响应事件中:
通过数据解析一层层找到数据,var id=e.target.dataset.index(根据你的data-id的取名)

如js中的两个打印就是通过两种不同方式获得的id。

第三种方式本地存储(和第四种一样都是可以全局使用的)

wx.setStorage({
  key:"key",
  data:"value"
})

wx.setStorage({
key: "key",
data: "很多的数据"
})
 

第4中方式全局app对象

const app = getApp()
app.datakey='sks';
 
const app = getApp()
var sks = app.datakey;
console.log(sks)

在其他博客里收集的

1.全局变量

app.js里

App({

//全局变量

globalData: {

userInfo: null,

host: ‘http://localhost:8080/data.json’

}

在其他js页面取值:

const app = getApp() //获取应用实例 必须有这个才能获取到app.js里的东西

在需要获取值得地方赋值如:

url:app.globalData.host

2.本地缓存(最多存10M的数据)

设值:wx.setStorageSync(‘title’, title)
  取值:var title=wx.getStorageSync(‘title’)

3.URL传值

wx.navigateTo({
    url: ‘/pages/detail/detail?title=’+title,
  })

在’/pages/detail/detail的detail.js里面
  获取值:

onLoad: function (options) {
    console.log(options) // 打印结果为:{title:“abc”}
  },

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值