一、實例生命周期
公司主營業(yè)務:網(wǎng)站制作、成都做網(wǎng)站、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)推出欒城免費做網(wǎng)站回饋大家。
除了Vue本身的生命周期處,mpvue還兼容了小程序的生命周期,這部分生命周期的鉤子來源于微信小程序的Page,除特殊情況外,不建議使用小程序的生命周期鉤子。
app 部分:
page 部分:
用法示例:
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"
注意點:
二、模板語法
不支持 純-HTML
小程序里所有的 BOM/DOM 都不能用,也就是說 v-html 指令不能用。
不支持部分復雜的 JavaScript 渲染表達式
我們會把 template 中的 {{}} 雙花括號的部分,直接編碼到 wxml 文件中,由于微信小程序的能力限制(數(shù)據(jù)綁定),所以無法支持復雜的 JavaScript 表達式。
目前可以使用的有 + - * % ?: ! == === > < [] .,剩下的還待完善。
不支持過濾器
渲染部分會轉(zhuǎn)成 wxml ,wxml 不支持過濾器,所以這部分功能不支持。
不支持函數(shù)
不支持在 template 內(nèi)使用 methods 中的函數(shù)。
列表渲染
全支持 官方文檔:列表渲染
只是需要注意一點,嵌套列表渲染,必須指定不同的索引!
<!-- 在這種嵌套循環(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 事件會被轉(zhuǎn)為 blur 事件。
踩坑注意:
列表中沒有的原生事件也可以使用例如 bindregionchange 事件直接在 dom 上將bind改為@
@regionchange,同時這個事件也非常特殊,它的 event type 有 begin 和 end
兩個,導致我們無法在handleProxy 中區(qū)分到底是什么事件,所以你在監(jiān)聽此類事件的時候同時監(jiān)聽事件名和事件類型既
小程序能力所致,bind 和 catch 事件同時綁定時候,只會觸發(fā) bind ,catch 不會被觸發(fā),要避免踩坑。
事件修飾符
.stop 的使用會阻止冒泡,但是同時綁定了一個非冒泡事件,會導致該元素上的 catchEventName 失效!
.prevent 可以直接干掉,因為小程序里沒有什么默認事件,比如submit并不會跳轉(zhuǎn)頁面
.capture 支持 1.0.9
.self 沒有可以判斷的標識
.once 也不能做,因為小程序沒有 removeEventListener, 雖然可以直接在 handleProxy 中處理,但非常的不優(yōu)雅,違背了原意,暫不考慮
其他 鍵值修飾符 等在小程序中壓根沒鍵盤,所以。。。
三、組件
有且只能使用單文件組件(.vue 組件)的形式進行支持。其他的諸如:動態(tài)組件,自定義 render,和<script type="text/x-template"> 字符串模版等都不支持。原因很簡單,因為我們要預編譯出 wxml。
詳細的不支持列表:
小程序組件
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
在所有 頁面 的組件內(nèi)可以通過 this.$root.$mp.query 進行獲取。
2. 如何獲取小程序在 app onLaunch/onShow 時候傳遞的 options
在所有的組件內(nèi)可以通過 this.$root.$mp.appOptions 進行獲取。
3. 如何捕獲 app 的 onError
由于 onError 并不是完整意義的生命周期,所以只提供一個捕獲錯誤的方法,在 app 的根組件上添加名為 onError 的回調(diào)函數(shù)即可。如下:
export default { // 只有 app 才會有 onLaunch 的生命周期 onLaunch () { // ... }, // 捕獲 app error onError (err) { console.log(err) } }
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。
本文名稱:淺談使用mpvue開發(fā)小程序需要注意和了解的知識點
文章路徑:http://www.rwnh.cn/article4/jispoe.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、定制開發(fā)、移動網(wǎng)站建設、建站公司、App設計、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)