最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談使用mpvue開(kāi)發(fā)小程序需要注意和了解的知識(shí)點(diǎn)

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

一、實(shí)例生命周期

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

app 部分:

  1. onLaunch,初始化
  2. onShow,當(dāng)小程序啟動(dòng),或從后臺(tái)進(jìn)入前臺(tái)顯示
  3. onHide,當(dāng)小程序從前臺(tái)進(jìn)入后臺(tái)

page 部分:

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

用法示例:

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

注意點(diǎn):

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

二、模板語(yǔ)法

不支持 純-HTML

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

不支持部分復(fù)雜的 JavaScript 渲染表達(dá)式

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

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

不支持過(guò)濾器

渲染部分會(huì)轉(zhuǎn)成 wxml ,wxml 不支持過(guò)濾器,所以這部分功能不支持。

不支持函數(shù)

不支持在 template 內(nèi)使用 methods 中的函數(shù)。

列表渲染

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

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

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

事件處理器

在 input 和 textarea 中 change 事件會(huì)被轉(zhuǎn)為 blur 事件。

踩坑注意:

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

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

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

事件修飾符

.stop 的使用會(huì)阻止冒泡,但是同時(shí)綁定了一個(gè)非冒泡事件,會(huì)導(dǎo)致該元素上的 catchEventName 失效!

.prevent 可以直接干掉,因?yàn)樾〕绦蚶餂](méi)有什么默認(rèn)事件,比如submit并不會(huì)跳轉(zhuǎn)頁(yè)面

.capture 支持 1.0.9

.self 沒(méi)有可以判斷的標(biāo)識(shí)

.once 也不能做,因?yàn)樾〕绦驔](méi)有 removeEventListener, 雖然可以直接在 handleProxy 中處理,但非常的不優(yōu)雅,違背了原意,暫不考慮

其他 鍵值修飾符 等在小程序中壓根沒(méi)鍵盤(pán),所以。。。

三、組件

有且只能使用單文件組件(.vue 組件)的形式進(jìn)行支持。其他的諸如:動(dòng)態(tài)組件,自定義 render,和<script type="text/x-template"> 字符串模版等都不支持。原因很簡(jiǎn)單,因?yàn)槲覀円A(yù)編譯出 wxml。

詳細(xì)的不支持列表:

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

小程序組件

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

示例代碼:

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

四、常見(jiàn)問(wèn)題

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

在所有 頁(yè)面 的組件內(nèi)可以通過(guò) this.$root.$mp.query 進(jìn)行獲取。

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

在所有的組件內(nèi)可以通過(guò) this.$root.$mp.appOptions 進(jìn)行獲取。

3. 如何捕獲 app 的 onError

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

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

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue項(xiàng)目keepAlive配合vuex動(dòng)態(tài)設(shè)置路由緩存方式

    vue項(xiàng)目keepAlive配合vuex動(dòng)態(tài)設(shè)置路由緩存方式

    vue項(xiàng)目keepAlive配合vuex動(dòng)態(tài)設(shè)置路由緩存方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • Vue tagsview實(shí)現(xiàn)多頁(yè)簽導(dǎo)航功能流程詳解

    Vue tagsview實(shí)現(xiàn)多頁(yè)簽導(dǎo)航功能流程詳解

    基本上后臺(tái)管理系統(tǒng)都需要有多頁(yè)簽的功能,但是因?yàn)橐恍┠_手架項(xiàng)目基本都把這個(gè)功能給集成好了,導(dǎo)致在學(xué)習(xí)或者修改的時(shí)候不知道該如何下手。今天這篇文章就來(lái)聊一聊,vue-element-admin項(xiàng)目是如何實(shí)現(xiàn)多頁(yè)簽功能的
    2022-09-09
  • 解決vue-cli單頁(yè)面手機(jī)應(yīng)用input點(diǎn)擊手機(jī)端虛擬鍵盤(pán)彈出蓋住input問(wèn)題

    解決vue-cli單頁(yè)面手機(jī)應(yīng)用input點(diǎn)擊手機(jī)端虛擬鍵盤(pán)彈出蓋住input問(wèn)題

    今天小編就為大家分享一篇解決vue-cli單頁(yè)面手機(jī)應(yīng)用input點(diǎn)擊手機(jī)端虛擬鍵盤(pán)彈出蓋住input問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • vue install 注冊(cè)全局組件方式

    vue install 注冊(cè)全局組件方式

    這篇文章主要介紹了vue install 注冊(cè)全局組件方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • vue3 template轉(zhuǎn)為render函數(shù)過(guò)程詳解

    vue3 template轉(zhuǎn)為render函數(shù)過(guò)程詳解

    在 Vue 中,template 模板是我們編寫(xiě)組件的主要方式之一,而 Vue 內(nèi)部會(huì)將這些模板轉(zhuǎn)換為 render 函數(shù),render 函數(shù)是用于創(chuàng)建虛擬 DOM 的函數(shù),通過(guò)它,Vue 能夠高效地追蹤 DOM 的變化并進(jìn)行更新,下面我會(huì)通俗易懂地詳細(xì)解釋 Vue 如何將 template 轉(zhuǎn)換為 render 函數(shù)
    2024-10-10
  • vue組件中重新渲染的3種方式小結(jié)

    vue組件中重新渲染的3種方式小結(jié)

    本文主要介紹了vue組件中重新渲染的3種方式小結(jié),主要包括改變key,v-if,vm.$forceUpdate()這三種,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • WebStorm無(wú)法正確識(shí)別Vue3組合式API的解決方案

    WebStorm無(wú)法正確識(shí)別Vue3組合式API的解決方案

    這篇文章主要介紹了WebStorm無(wú)法正確識(shí)別Vue3組合式API的解決方案,幫助大家更好的理解和學(xué)習(xí)使用vue框架,感興趣的朋友可以了解下
    2021-02-02
  • vue-cli腳手架引入彈出層layer插件的幾種方法

    vue-cli腳手架引入彈出層layer插件的幾種方法

    layer.js(mobile)是一個(gè)小巧方便的彈出層插件,在之前的apicloud項(xiàng)目中被大量使用,但最近對(duì)apicloud的IDE、非常不友好的文檔和極低的開(kāi)發(fā)效率深感厭煩,決定棄用然后轉(zhuǎn)向Vue開(kāi)發(fā)。這篇文章主要介紹了vue-cli腳手架引入彈出層layer插件的幾種方法,需要的朋友可以參考下
    2019-06-06
  • Vue做一個(gè)簡(jiǎn)單的隨機(jī)點(diǎn)名冊(cè)

    Vue做一個(gè)簡(jiǎn)單的隨機(jī)點(diǎn)名冊(cè)

    這篇文章主要介紹的是如何用Vue做一個(gè)簡(jiǎn)單的隨機(jī)點(diǎn)名冊(cè),主要是做個(gè)簡(jiǎn)單的點(diǎn)名器,不做樣式,需要的朋友可以參考一下,希望對(duì)你有所幫助
    2021-12-12
  • vue 路由meta 設(shè)置導(dǎo)航隱藏與顯示功能的示例代碼

    vue 路由meta 設(shè)置導(dǎo)航隱藏與顯示功能的示例代碼

    這篇文章主要介紹了vue 路由meta 設(shè)置導(dǎo)航隱藏與顯示功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09

最新評(píng)論

九龙坡区| 铜陵市| 锡林郭勒盟| 铅山县| 和顺县| 灵璧县| 商丘市| 邯郸市| 鲜城| 荆门市| 英吉沙县| 山阴县| 麟游县| 罗甸县| 金阳县| 淮阳县| 青海省| 麦盖提县| 南充市| 贞丰县| 高安市| 长宁区| 贵阳市| 奉贤区| 中山市| 上蔡县| 富川| 江安县| 阳山县| 丽水市| 双柏县| 兴仁县| 门源| 平塘县| 东乌| 垫江县| 巴塘县| 乐都县| 锡林浩特市| 龙泉市| 长丰县|