mpvue 用 vue 的语法开发小程序,用着很爽可是也有不少坑,在这里记录下踩过坑。vue
全部页面的 created 在小程序初始化时都会触发,mounted 对应小程序的 onLoad,因此 mpvue mounted 至关于 vue 中的 created。npm
mounted() { // 相对应小程序的 onLoad // 获取数据 this.getData(); },
vue 中获取数据放到 created 中,mpvue 则放到 mounted 中。json
1. keep-alive 2. solt 3. class 和 style 的 classObject 和 styleObject 语法。 4. filters
<template> <!-- 支持 --> <div class="container" :class="computedClassStr"></div> <div class="container" :class="{active: isActive}"></div> <!-- 不支持 --> <div class="container" :class="computedClassObject"></div> </template> <script> export default { data () { return { isActive: true } }, computed: { computedClassStr () { return this.isActive ? 'active' : '' }, computedClassObject () { return { active: this.isActive } } } } </script>
filters 能够使用 motheds 或者 computed 替换
mpvue-loader 版本 1.1 以上须要新建 main.json 做为配置文件。小程序
图片使用相对路径没法加载,放到 dist/static 目录下使用绝对路径便可。缓存
新建页面后须要从新 npm run dev 才能生效this
小程序中页面返回后该页面就会出栈,下次进入从新触发 onLoad,可是 mpvue 返回后页面没有销毁,数据会缓存,因此进入页面咱们须要重置数据。code
onLoad() { // 解决页面返回后,数据没重置的问题 Object.assign(this, this.$options.data()); }, methods: { },