主要记录一些小程序开发过程中需要注意的一些点,以及相关知识的学习。
wx.navigateTo 跳转页面,不能使 tabbar 页面。小程序的页面栈最多是10层。
小程序的绑定事件传参:
1 | <block wx:for='{{cardList}}'> |
view 和 block 标签
view 和 block 标签的区别在于,view 是一个视图容器组件,会在页面渲染,而 block 是仅仅是一个包装元素,仅根据属性做逻辑判断,并不会在页面渲染。
关于静态资源加载
推荐使用绝对路径加载资源,避免作为属性值传入到组件中造成资源加载出错。
关于生命周期
小程序中关于生命周期的概念,大致分为三类:小程序的生命周期、页面的生命周期、组件的生命周期。
1)小程序的生命周期
App() 是用来注册小程序的方法,且只能在app.js中调用,必须调用且只能调用一次。
1 | App({ |
- 页面的生命周期
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32Page({
/**
* 页面的初始数据
*/
data: {},
// 生命周期函数--监听页面加载
// 一个页面只会调用一次,可以在onLoad的参数中获取打开当前页面路径中的参数
onLoad: function (options) {
},
// 生命周期函数--监听页面显示
// 页面显示/切入前台时触发
onShow: function () {
},
// 生命周期函数--监听页面初次渲染完成
// 页面初次渲染完成时触发。一个页面只会调用一次,代表页面已经准备妥当,可以和视图层进行交互。
// 注意:对界面内容进行设置的 API 如wx.setNavigationBarTitle,请在onReady之后进行。
onReady: function () {
},
// 生命周期函数--监听页面隐藏
// 页面隐藏/切入后台时触发。如navigateTo或底部tab切换到其他页面,小程序切入后台等
onHide: function () {
},
// 生命周期函数--监听页面卸载
// 页面卸载时触发,如redirectTo或 navigateBack到其他页面时。
onUnload: function () {
},
}) - 组件的生命周期
组件的生命周期,指组件自身的一些方法,在特定的事件节点或特定的事件时自动触发。
最重要的生命周期是 created attached detached, 包含一个组件实例生命流程的最主要时间节点。- 组件实例刚刚被创建好时, created 生命周期被触发。此时,组件数据 this.data 就是在 Component 构造器中定义的数据 data 。 此时还不能调用 setData 。 通常情况下,这个生命周期只应该用于给组件 this 添加一些自定义属性字段。
- 在组件完全初始化完毕、进入页面节点树后, attached 生命周期被触发。此时, this.data 已被初始化为组件的当前值。这个生命周期很有用,绝大多数初始化工作可以在这个时机进行。
- 在组件离开页面节点树后, detached 生命周期被触发。退出一个页面时,如果组件还在页面节点树中,则 detached 会被触发。
1 | Component({ |
生命周期 | 参数 | 描述 |
---|---|---|
created | 无 | 在组件实例刚刚被创建时执行 |
attached | 无 | 在组件实例进入到页面节点树时执行 |
ready | 无 | 在组件在视图层布局完成后执行 |
moved | 无 | 在组件实例被移动到节点树另一个位置时执行 |
detached | 无 | 在组件实例被页面节点树移除时执行 |
error | Object Error | 每当组件方法抛出错误时执行 |
在微信小程序中引入 iconfont
平时用习惯了iconfont,但是在小程序该如何使用,其实用法也是很简单。
- 首先将所需要用到的字体图标,组成一个项目并下载到本地。
- 下载到本地的文件目录如下, 3)然后选择项目需要的文件,iconfont.css/eot/svg/ttf/woff/woff2,放到小程序assets目录下,并将iconfont.css修改为iconfont.wxss,小程序才能识别。
- 在app.wxss中引入
1
@import '/assets/iconfont/iconfont';
- 小程序可以愉快的使用了
1
<i class="iconfont icon-gouwu"></i>
小程序中图片预览和长按保存到本地
关于图片的预览,小程序提供了 wx.previewImage 的API,在预览过程中可以进行保存图片,发送给朋友等操作,是微信内置的。
1 | wx.previewImage({ |
如果是通过自定义方法取触发图片保存到本地相册,使用 wx.saveImageToPhotosAlbum,使用该方法需要用户授权 scope.writePhotosAlbum。
1 | wx.saveImageToPhotosAlbum({ |