微信小程序传值的几种方式
第一种:通过链接传值(跳转页面传值)
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”} },
上一篇:
uniapp开发微信小程序-2.页面制作
下一篇:
微信小程序_4,WXSS模板样式