一、 开发小程序时,每个页面一定要在app.json文件中注册,页面文件夹和其包含的四个文件的名字要保持一致。
二、.五层页面栈限制
小程序最多只能打开5个页面,当打开页面的个数达到5个以后,wx.navigateTo不能正常打开新的页面,请避免层级过多的交互方式,或使用wx.redirectTo重定向
三、text允许复制用的是css控制的, 也就是:
user-select: none;
-webkit-user-select: none;
四、this作用域分析
1.在Page({})里面,this关键字指代Page({})整个对象
2.因此可以通过this关键字访问或者重新设置Page({})里data的变量
3.然而在loadData函数中使用了wx.request({})API这个方法导致在wx.request({})里没办法使用this来获取Page({})对象
4.虽然在wx.request({})里没法使用this获取Page({})对象,但是可以在wx.request({})外面先把this存在某个变量中,所以就有了var that =this 这个声明。此时that指代Page({})整个对象,这样子就可以在wx.request({})里使用that访问或者重新设置Page({})里data的变量
五、js中,字符串转Date对象,应同时考虑安卓和苹果
错误:let startTime = new Date('2021-10-18 23:00:00').getTime();
正确:
let startTime = new Date('2021/10/18 23:00:00').getTime();
或者
let startTime = new Date('2021-10-18 23:00:00'.replace(/-/g, '/')).getTime();
六、阻止事件冒泡。
小程序里也存在事件的冒泡,具体的冒泡事件可以参考官方文档,如果希望事件向上冒泡,则使用bind来绑定事件,若希望阻止事件冒泡,就使用catch来进行事件绑定。
bindtap: 元素绑定事件,父节点绑定事件会冒泡
catchtap: 不会冒泡,仅在当前元素触发
例:
<view class='A' bindtap='funcA'>
<view class='B' catchtap='funcB'></view>
</view>
七、去掉Button的默认边框
button::after{
border: none;
}或者
button{
position: static;
}
八、tab跳转
在同一个tab里的页面可以跳转,并且允许携带参数。不同tab的页面之间无法跳转,使用wx.navigateTo()接口会报错。同时,tab之间的跳转可以用wx.switchTab()实现,但是路径后不能带参数。
九、在组件标签里,可以通过“data-属性值”的方式绑定我们需要的数据,然后在事件内置event对象里进行获取。
十、分享按钮
目前小程序可以分享给微信好友和微信群,但小程序默认是没有这个功能的,只有在Page里定义了onShareAppMessage事件处理函数,点击小程序右上角才可以看到分享按钮。
有两种方式:
①右上角菜单的「转发」按钮时触发的事件wx.onShareAppMessage(function callback)
②通过给 button
组件设置属性 open-type="share"
,可以在用户点击按钮后触发 Page.onShareAppMessage 事件
分享到朋友圈
- shareAppMessage"表示“发送给朋友”按钮,"shareTimeline"表示“分享到朋友圈”按钮
- 显示“分享到朋友圈”按钮时必须同时显示“发送给朋友”按钮,显示“发送给朋友”按钮时则允许不显示“分享到朋友圈”按钮
示例代码:
一般写在页面的onLoad
wx.showShareMenu({
withShareTicket: true,
menus: ['shareAppMessage', 'shareTimeline']
})这样“分享到朋友圈”按钮就会显示
分享到朋友圈时参数等的绑定:
// 转发至朋友圈
onShareTimeline : function (res) {
ret