久久国产av,国产激情欧美有码,亚洲国产综合精品2020,国产无套粉嫩白浆内精

uniapp項目 uniapp反編譯

2023-05-04 00:56:35 生財有道 5226次閱讀 投稿:天凝

uniapp項目 uniapp反編譯

uniapp項目 uniapp反編譯?很多人不了解,今天各百科為大家?guī)硐嚓P(guān)內(nèi)容,下面小編為大家整理介紹。

點擊右上方紅色按鈕,關(guān)注“網(wǎng)絡(luò)秀”,讓你真正露臉。

前言

Uni-app在發(fā)布到H5時支持所有vue語法。但發(fā)布到App或小程序時,由于各種平臺的限制,無法實現(xiàn)所有的vue語法。本文將詳細(xì)解釋這些差異。

與Web平臺相比,在uni-app中使用Vue.js區(qū)別主要集中在兩個方面:

新增:uni-app不僅支持Vue實例的生命周期,還支持應(yīng)用啟動和頁面顯示的生命周期。

有限:相對于web平臺,小程序和App的功能有限,如下圖。

生命周期

Uni-app不僅支持完整Vue實例的生命周期,還增加了應(yīng)用生命周期和頁面生命周期。

應(yīng)用程序生命周期包括以下功能

1.當(dāng)uni-app初始化完成時觸發(fā)onLaunch(僅全局觸發(fā)一次)

2.onShow當(dāng)uni-app啟動,或者從后臺進(jìn)入前臺顯示時。

3.當(dāng)uni-app從前臺進(jìn)入后臺時onHide

4.onUniNViewMessage監(jiān)控nvue頁面發(fā)送的數(shù)據(jù)。

注意

(1)應(yīng)用生命周期只能在App.vue中監(jiān)控,其他頁面無法監(jiān)控。

(2)在onlaunch跳轉(zhuǎn)到頁面的話去官網(wǎng)找解決方案,可能會遇到白屏錯誤。

頁面生命周期

注意

(1) onTabItemTap常用于點擊當(dāng)前選項卡,滾動或刷新當(dāng)前頁面。如果你點擊一個不同的標(biāo)簽,它肯定會觸發(fā)頁面切換。

(2)如果想在App端點擊一個tabititem而不跳轉(zhuǎn)到頁面,又不能使用onTabItemTap,可以使用plus.nativeObj.view放一個塊覆蓋原來的tabititem,攔截點擊事件。

(3) onTabItemTap在App端,從HBuilderx1.9的自定義組件編譯模式支持。

語法支持

支持的 vue 語法

1.支持過濾器過濾器

2.支持復(fù)雜的JavaScript渲染表達(dá)式。

3.支持在模板內(nèi)的方法中使用函數(shù)。

4.支持v-html(與富文本解析相同)

5.支持v-slot的新語法

6.支持解構(gòu)槽道具設(shè)置默認(rèn)值。

7.支持插槽備份內(nèi)容

8.組件支持原生事件綁定,比如@ tap.native。

不支持的 vue 語法

1.類不支持綁定Obejct變量(字符串形式的綁定)

2.不支持事件修飾符:防止和被動(在App和applet平臺上,停止修飾符可以防止冒泡和默認(rèn)行為)

3.不支持渲染、內(nèi)嵌模板、X模板、保持活動和過渡。

4.不支持使用Vue.use注冊全局組件(在main.js中使用Vue.component引入)

列表渲染

1.H5平臺在使用v-for循環(huán)整數(shù)時和其他平臺有區(qū)別,比如v-for='(ite`m,index) in 10 '。在H5平臺中,該項目從1開始,而在其他平臺中,可以使用第二個參數(shù)索引來保持不變。

2.在非H5平臺上循環(huán)對象時不支持第三個參數(shù),如V-for=' (value,name,index) in object ',也不支持index參數(shù)。

事件處理

幾乎完全支持事件處理程序。

/

/ 事件映射表,左側(cè)為 WEB 事件,右側(cè)為 ``uni-app`` 對應(yīng)事件{ click: 'tap', touchstart: 'touchstart', touchmove: 'touchmove', touchcancel: 'touchcancel', touchend: 'touchend', tap: 'tap', longtap: 'longtap', input: 'input', change: 'change', submit: 'submit', blur: 'blur', focus: 'focus', reset: 'reset', confirm: 'confirm', columnchange: 'columnchange', linechange: 'linechange', error: 'error', scrolltoupper: 'scrolltoupper', scrolltolower: 'scrolltolower', scroll: 'scroll'}注意:

1、為兼容各端,事件需使用 v-on 或 @ 的方式綁定,請勿使用小程序端的bind 和 catch 進(jìn)行事件綁定。

2、事件修飾符

.stop:各平臺均支持, 使用時會阻止事件冒泡,在非 H5 端同時也會阻止事件的默認(rèn)行為

.prevent 僅在 H5 平臺支持

.self:僅在 H5 平臺支持

.once:僅在 H5 平臺支持

.capture:僅在 H5 平臺支持

.passive:僅在 H5 平臺支持

3、若需要禁止蒙版下的頁面滾動,可使用 @touchmove.stop.prevent="moveHandle",moveHandle 可以用來處理 touchmove 的事件,也可以是一個空函數(shù)。

<view class="mask" @touchmove.stop.prevent="moveHandle"></view>4、按鍵修飾符:uni-app運行在手機(jī)端,沒有鍵盤事件,所以不支持按鍵修飾符。

  

命名限制

在 uni-app 中以下這些作為保留關(guān)鍵字,不可作為組件名。

a, canvas, cell, content, countdown, datepicker, div, element, embed, header, image, img, indicator, input, link, list, loading-indicator, loading, marquee, meta, refresh, richtext, script, scrollable, scroller, select, slider-neighbor, slider, slot, span, spinner, style, svg, switch, tabbar, tabheader, template, text, textarea, timepicker, trisition-group, trisition, video, view, web

除以上列表中的名稱外,標(biāo)準(zhǔn)的 HTML 及 SVG 標(biāo)簽名也不能作為組件名。

  

其他疑難雜癥

1、如何獲取上個頁面?zhèn)鬟f的數(shù)據(jù)

在 onLoad 里得到,onLoad 的參數(shù)是其他頁面打開當(dāng)前頁面所傳遞的數(shù)據(jù)。

2、如何捕獲 app 的 onError

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

export default { // 只有 app 才會有 onLaunch 的生命周期 onLaunch () { // ... }, // 捕獲 app error onError (err) { console.log(err) }}3、組件屬性設(shè)置不生效解決辦法

當(dāng)重復(fù)設(shè)置某些屬性為相同的值時,不會同步到view層。 例如:每次將scroll-view組件的scroll-top屬性值設(shè)置為0,只有第一次能順利返回頂部。 這和props的單向數(shù)據(jù)流特性有關(guān),組件內(nèi)部scroll-top的實際值改動后,其綁定的屬性并不會一同變化。

解決辦法有兩種(以scroll-view組件為例):

(1)、監(jiān)聽scroll事件,記錄組件內(nèi)部變化的值,在設(shè)置新值之前先設(shè)置為記錄的當(dāng)前值

<scroll-view :scroll-top="scrollTop" scroll-y="true" @scroll="scroll"><script>export default { data() { return { scrollTop: 0, old: { scrollTop: 0 } } }, methods: { scroll: function(e) { this.old.scrollTop = e.detail.scrollTop }, goTop: function(e) { this.scrollTop = this.old.scrollTop this.$nextTick(function() { this.scrollTop = 0 }); } }}</script>(2)、監(jiān)聽scroll事件,獲取組件內(nèi)部變化的值,實時更新其綁定值

<scroll-view :scroll-top="scrollTop" scroll-y="true" @scroll="scroll"><script>export default { data() { return { scrollTop: 0, } }, methods: { scroll: function(e) { this.scrollTop = e.detail.scrollTop }, goTop: function(e) { this.scrollTop = 0 } }}</script>第二種解決方式在某些組件可能造成抖動,推薦第一種解決方式。

喜歡小編或者覺得小編文章對你有幫助的,可以點擊一波關(guān)注哦!同時,要源碼的小伙伴可以點擊下方“了解更多”。

最后推薦一個專欄文章,感謝小伙伴們多多支持,謝謝大家!

聲明:各百科所有作品(圖文、音視頻)均由用戶自行上傳分享,僅供網(wǎng)友學(xué)習(xí)交流。若您的權(quán)利被侵害,請聯(lián)系: [email protected]