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

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

index.wxml

<view>{{ msg }}</view>

<button bindtap="clickMe">点击我</button>

clickMe: function () {//点击事件

wx.navigateTo({

url: '../1111?//传值

})

this.setData({ msg: "Hello World" })

},

跳传页面接受值

onLoad: function (options) {

console.log('query',options)

},

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

<button bindtap="clickMe" data->点击我</button>//当然key在data中必须有值

<button bindtap="clickMe" >点击我</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)

最后添加一种方式是跳转路由,由于本人记性差所以mark

1 goabout :function(){
2       this.$router.push({
3                  path:'/home/first'
4                 })
5 
6     }