前言
mpvue 用 vue 的语法开发小程序,用着很爽但是也有很多坑,在这里记录下踩过坑。
1 created 不是预期的触发
所有页面的 created 在小程序初始化时都会触发,mounted 对应小程序的 onLoad,所以 mpvue mounted 相当于 vue 中的 created。
mounted() { // 相对应小程序的 onLoad // 获取数据 this.getData(); },
vue 中获取数据放到 created 中,mpvue 则放到 mounted 中。
2 不支持的 vue 属性
1. keep-alive2. solt3. class 和 style 的 classObject 和 styleObject 语法。4. filters
filters 可以使用 motheds 或者 computed 替换
3 mpvue-loader
mpvue-loader 版本 1.1 以上需要新建 main.json 作为配置文件。
4 图片相对路径无法加载
图片使用相对路径无法加载,放到 dist/static 目录下使用绝对路径即可。
5 新建页面需要重新 npm run dev 才能生效
新建页面后需要重新 npm run dev 才能生效
6 页面返回后没有销毁
小程序中页面返回后该页面就会出栈,下次进入重新触发 onLoad,但是 mpvue 返回后页面没有销毁,数据会缓存,所以进入页面我们需要重置数据。
onLoad() { // 解决页面返回后,数据没重置的问题 Object.assign(this, this.$options.data()); }, methods: { },