在写前面的小程序入门项目时,发现有两个很经常使用并且以为也算比较重要的知识点,这里记录下:html
好比你的页面须要显示一个Hello
字符串,这个这个字符串可能会根据某些状况会动态变化,这个时候就须要进行数据绑定展现了android
在wxml文件布局以下:小程序
1 |
<view>{{message}}</view> |
在js中设置好变量以下:微信小程序
1 2 3 4 5 6 |
Page({ data: { message: "Hello", number: 1 } }); |
就这样data里面的message属性就能够经过view组件展现出来了,看了上面的写法,也很容易明白,组件展现数据信息时是经过微信
1 |
{{属性名称}} |
这的写法与data里面的属性进行绑定的。ide
若是在数据信息展现出来后,后面要更新这个属性信息的展现的话,就不能简单的经过this.data.message="Hello World"来实现,由于这样是没法达到改变数据信息的目的的。小程序中改变数据信息要求使用函数
setData()函数来实现。例如上面咱们修改
message`的值的话须要进行以下操做:函数
1 2 3 |
this.setData({ message: "Hello World" }); |
经过该函数更新以后,页面上会自动的更新展现,而不须要咱们去进行额外的操做,微信将数据的展现与更新进行了分离,只要你使用特定的方法修改属性值,界面就会自动更新,这样的实方式比起android中的手动通知更新要方便不少布局
小程序中从一个页面跳转到另一个页面有几种方式,这里我以wx.navigateTo()
跳转进行说明:
我从index
页面跳转到logs
页面,很简单this
1 2 3 |
wx.navigateTo({ url: '../log/logs }) |
那若是我在跳转的同时要向logs
页面传递参数该怎么办呢,也很简单,直接在url后拼接相关参数便可(与http中的get请求的传参方式是同样的)url
1 2 3 |
wx.navigateTo({ url: '../video/video?message=' + this.data.message + "&number=" + this.data.number }) |
参数是传过去了,那在logs
页面中该如何获取这些参数呢?其实也很简单:
1 2 3 4 |
onLoad: function (options) { var message = options.message; var number = options.number; } |
如上所示,咱们在新页面的onLoad
函数中就能够直接获取到传递过来的参数信息。
在我前面的文章 微信小程序之入门项目中点击视频列表中的某一项跳转到视频播放页面,而在点击列表中的某一项时,须要获取当前项的数据信息,若是我想经过点击事件就将这些数据信息做为参数传递过去该怎么作呢?代码以下:
1 |
<view wx:for="{{tab.videos}}" wx:for-item="video" data-video="{{video}}" wx:key="*this" bindtap="onItemClick"> |
上面的代码经过for循环实现了一个列表,并为每一项绑定了点击事件,而view
组件实现中有一个属性是微信没有提供的:data-video
,这个属性是咱们手动添加上去的,微信中若是要在wxml中传递参数到点击事件中的话则能够经过data-**
的形式进行传参(**号即为参数名称),此处是将每一项数据video
做为参数进行传递,同时参数名称为video
接下来再来看看点击事件中如何获取该video
信息:
1 2 3 4 5 |
onItemClick: function (event) { var video = event.currentTarget.dataset.video; var url = video.url; var title = video.title; } |
没错,就像代码中写的,在点击事件中咱们能够经过event.currentTarget.dataset
获取传过来的video
信息,这个参数在调试的时候也是能够经过event对象看到的.