欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談使用mpvue開發(fā)小程序需要注意和了解的知識點

 更新時間:2018年05月23日 09:42:03   作者:前端小智  
這篇文章主要介紹了淺談使用mpvue開發(fā)小程序需要注意和了解的知識點,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

一、實例生命周期

除了Vue本身的生命周期處,mpvue還兼容了小程序的生命周期,這部分生命周期的鉤子來源于微信小程序的Page,除特殊情況外,不建議使用小程序的生命周期鉤子。

app 部分:

  1. onLaunch,初始化
  2. onShow,當小程序啟動,或從后臺進入前臺顯示
  3. onHide,當小程序從前臺進入后臺

page 部分:

  1. onLoad,監(jiān)聽頁面加載
  2. onShow,監(jiān)聽頁面顯示
  3. onReady,監(jiān)聽頁面初次渲染完成
  4. onHide,監(jiān)聽頁面隱藏
  5. onUnload,監(jiān)聽頁面卸載
  6. onPullDownRefresh,監(jiān)聽用戶下拉動作
  7. onReachBottom,頁面上拉觸底事件的處理函數
  8. onShareAppMessage,用戶點擊右上角分享
  9. onPageScroll,頁面滾動
  10. onTabItemTap, 當前是 tab 頁時,點擊 tab 時觸發(fā) (mpvue 0.0.16 支持)

用法示例:

new Vue({
 data: {
  a: 1
 },
 created () {
  // `this` 指向 vm 實例
  console.log('a is: ' + this.a)
 },
 onShow () {
  // `this` 指向 vm 實例
  console.log('a is: ' + this.a, '小程序觸發(fā)的 onshow')
 }
})
// => "a is: 1"

注意點:

  1. 不要在選項屬性或回調上使用箭頭函數,比如 created: () => console.log(this.a) 或vm.$watch('a', newValue => this.myMethod())。因為箭頭函數是和父級上下文綁定在一起的,this不會是如你做預期的 Vue 實例,且 this.a 或 this.myMethod 也會是未定義的。
  2. 微信小程序的頁面的 query 參數是通過 onLoad 獲取的,mpvue 對此進行了優(yōu)化,直接通過this.$root.$mp.query 獲取相應的參數數據,其調用需要在 onLoad 生命周期觸發(fā)之后使用,比如 onShow 等

二、模板語法

不支持 純-HTML

小程序里所有的 BOM/DOM 都不能用,也就是說 v-html 指令不能用。

不支持部分復雜的 JavaScript 渲染表達式

我們會把 template 中的 {{}} 雙花括號的部分,直接編碼到 wxml 文件中,由于微信小程序的能力限制(數據綁定),所以無法支持復雜的 JavaScript 表達式。

目前可以使用的有 + - * % ?: ! == === > < [] .,剩下的還待完善。

不支持過濾器

渲染部分會轉成 wxml ,wxml 不支持過濾器,所以這部分功能不支持。

不支持函數

不支持在 template 內使用 methods 中的函數。

列表渲染

全支持 官方文檔:列表渲染

只是需要注意一點,嵌套列表渲染,必須指定不同的索引!

<!-- 在這種嵌套循環(huán)的時候, index 和 itemIndex 這種索引是必須指定,且別名不能相同,正確的寫法如下 -->
<template>
  <ul v-for="(card, index) in list">
    <li v-for="(item, itemIndex) in card">
      {{item.value}}
    </li>
  </ul>
</template>

事件處理器

在 input 和 textarea 中 change 事件會被轉為 blur 事件。

踩坑注意:

列表中沒有的原生事件也可以使用例如 bindregionchange 事件直接在 dom 上將bind改為@
@regionchange,同時這個事件也非常特殊,它的 event type 有 begin 和 end
兩個,導致我們無法在handleProxy 中區(qū)分到底是什么事件,所以你在監(jiān)聽此類事件的時候同時監(jiān)聽事件名和事件類型既

復制代碼 代碼如下:
<map @regionchange="functionName" @end="functionName" @begin="functionName"><map>

小程序能力所致,bind 和 catch 事件同時綁定時候,只會觸發(fā) bind ,catch 不會被觸發(fā),要避免踩坑。

事件修飾符

.stop 的使用會阻止冒泡,但是同時綁定了一個非冒泡事件,會導致該元素上的 catchEventName 失效!

.prevent 可以直接干掉,因為小程序里沒有什么默認事件,比如submit并不會跳轉頁面

.capture 支持 1.0.9

.self 沒有可以判斷的標識

.once 也不能做,因為小程序沒有 removeEventListener, 雖然可以直接在 handleProxy 中處理,但非常的不優(yōu)雅,違背了原意,暫不考慮

其他 鍵值修飾符 等在小程序中壓根沒鍵盤,所以。。。

三、組件

有且只能使用單文件組件(.vue 組件)的形式進行支持。其他的諸如:動態(tài)組件,自定義 render,和<script type="text/x-template"> 字符串模版等都不支持。原因很簡單,因為我們要預編譯出 wxml。

詳細的不支持列表:

  1. 暫不支持在組件引用時,在組件上定義 click 等原生事件、v-show(可用 v-if 代替)和 class style 等樣式屬性(例:<card class="class-name"> </card> 樣式是不會生效的),因為編譯到wxml,小程序不會生成節(jié)點,建議寫在內部頂級元素上。
  2. Slot(scoped 暫時還沒做支持)
  3. 動態(tài)組件
  4. 異步組件
  5. inline-template
  6. X-Templates
  7. keep-alive
  8. transition
  9. class
  10. style

小程序組件

mpvue 可以支持小程序的原生組件,比如: picker,map 等,需要注意的是原生組件上的事件綁定,需要以 vue 的事件綁定語法來綁定,如 bindchange="eventName" 事件,需要寫成 @change="eventName"

示例代碼:

<picker mode="date" :value="date" start="2015-09-01" end="2017-09-01" @change="bindDateChange">
  <view class="picker">
   當前選擇: {{date}}
  </view>
</picker>

四、常見問題

1. 如何獲取小程序在 page onLoad 時候傳遞的 options

在所有 頁面 的組件內可以通過 this.$root.$mp.query 進行獲取。

2. 如何獲取小程序在 app onLaunch/onShow 時候傳遞的 options

在所有的組件內可以通過 this.$root.$mp.appOptions 進行獲取。

3. 如何捕獲 app 的 onError

由于 onError 并不是完整意義的生命周期,所以只提供一個捕獲錯誤的方法,在 app 的根組件上添加名為 onError 的回調函數即可。如下:

export default {
  // 只有 app 才會有 onLaunch 的生命周期
  onLaunch () {
    // ...
  },

  // 捕獲 app error
  onError (err) {
    console.log(err)
  }
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • vue3自定義指令看完這篇就入門了

    vue3自定義指令看完這篇就入門了

    不同于vue2不需要被use使用,vue3的機制是你的指令必須要被注冊成方法的,這樣你才能全局使用到自定義指令,下面這篇文章主要給大家介紹了關于vue3自定義指令的相關資料,需要的朋友可以參考下
    2022-11-11
  • 淺談nuxtjs校驗登錄中間件和混入(mixin)

    淺談nuxtjs校驗登錄中間件和混入(mixin)

    這篇文章主要介紹了淺談nuxtjs校驗登錄中間件和混入(mixin),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • 淺談vuex中store的命名空間

    淺談vuex中store的命名空間

    今天小編就為大家分享一篇淺談vuex中store的命名空間,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Vue+Echart柱狀圖實現疫情數據統(tǒng)計

    Vue+Echart柱狀圖實現疫情數據統(tǒng)計

    這篇文章主要介紹了在Vue nuxt項目中,如何使用Echart(百度圖表)柱狀圖來實現疫情數據統(tǒng)計,感興趣的小伙伴可以跟隨小編一起學習一下
    2021-12-12
  • Vue實現刷新當前頁面的三種方式總結

    Vue實現刷新當前頁面的三種方式總結

    項目當中如果做新增/修改/刪除等等操作通常情況下都需要刷新數據或者刷新當前頁面。本文為大家整理了三種不同的實現方法,需要的可以參考一下
    2023-01-01
  • vue 修改 data 數據問題并實時顯示操作

    vue 修改 data 數據問題并實時顯示操作

    這篇文章主要介紹了vue 修改 data 數據問題并實時顯示操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • vue實現輪播圖片

    vue實現輪播圖片

    這篇文章主要為大家詳細介紹了vue實現簡單的輪播圖片,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • vue2.0 使用element-ui里的upload組件實現圖片預覽效果方法

    vue2.0 使用element-ui里的upload組件實現圖片預覽效果方法

    今天小編就為大家分享一篇vue2.0 使用element-ui里的upload組件實現圖片預覽效果方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • 詳解如何用VUE寫一個多用模態(tài)框組件模版

    詳解如何用VUE寫一個多用模態(tài)框組件模版

    這篇文章主要介紹了詳解如何用VUE寫一個多用模態(tài)框組件模版,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • Vue+Mock.js模擬登錄和表格的增刪改查功能

    Vue+Mock.js模擬登錄和表格的增刪改查功能

    這篇文章主要介紹了Vue+Mock.js模擬登錄和表格的增刪改查功能,需要的朋友可以參考下
    2018-07-07

最新評論