mpVue 踩坑記

前言

mpvue 用 vue 的語法開發小程序,用着很爽可是也有不少坑,在這裏記錄下踩過坑。vue

1 created 不是預期的觸發

全部頁面的 created 在小程序初始化時都會觸發,mounted 對應小程序的 onLoad,因此 mpvue mounted 至關於 vue 中的 created。npm

mounted() {  // 相對應小程序的 onLoad
      // 獲取數據
      this.getData();
    },

vue 中獲取數據放到 created 中,mpvue 則放到 mounted 中。json

2 不支持的 vue 屬性

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 替換

3 mpvue-loader

mpvue-loader 版本 1.1 以上須要新建 main.json 做爲配置文件。小程序

4 圖片相對路徑沒法加載

圖片使用相對路徑沒法加載,放到 dist/static 目錄下使用絕對路徑便可。緩存

5 新建頁面須要從新 npm run dev 才能生效

新建頁面後須要從新 npm run dev 才能生效this

6 頁面返回後沒有銷燬

小程序中頁面返回後該頁面就會出棧,下次進入從新觸發 onLoad,可是 mpvue 返回後頁面沒有銷燬,數據會緩存,因此進入頁面咱們須要重置數據。code

onLoad() {
      // 解決頁面返回後,數據沒重置的問題
      Object.assign(this, this.$options.data());
    },
    methods: {
     
    },
相關文章
相關標籤/搜索