欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

uni-app 開發(fā)技巧和注意事項 - 新聞資訊 - 云南小程序開發(fā)|云南軟件開發(fā)|云南網站建設-昆明葵宇信息科技有限公司

159-8711-8523

云南網建設/小程序開發(fā)/軟件開發(fā)

知識

不管是網站,軟件還是小程序,都要直接或間接能為您產生價值,我們在追求其視覺表現(xiàn)的同時,更側重于功能的便捷,營銷的便利,運營的高效,讓網站成為營銷工具,讓軟件能切實提升企業(yè)內部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!

您當前位置>首頁 » 新聞資訊 » 小程序相關 >

uni-app 開發(fā)技巧和注意事項

發(fā)表時間:2021-1-5

發(fā)布人:葵宇科技

瀏覽次數(shù):116

  1. 獲取路徑傳參,類似小程序,在onLoad接受參數(shù)。沒有vue中的query和param

    // 路徑 /pages/index/index?a=1&b=2
    onLoad(config) {
        const { a, b } = config
    }
    復制代碼
  2. uni-app內置vuex,但不支持vue-router

  3. easycom(自動引入組件且是按需引入)

    從插件市場安裝的組件默認是easycom,自定義組件可用正則匹配

    "easycom": {
      "^u-(.*)": "@/uview-ui/components/u-$1/u-$1.vue",
      "comp": "@/pages/index/comp"
    }
    復制代碼
  4. 生命周期(以下為全端支持),原則上應當頁面使用頁面的生命周期,組件用組件的生命周期,不能混用

    • 應用生命周期,僅能在App.vue中監(jiān)聽

      函數(shù)名 說明
      onLaunch 當uni-app 初始化完成時觸發(fā)(全局只觸發(fā)一次)
      onShow 當 uni-app 啟動,或從后臺進入前臺顯示
      onHide 當 uni-app 從前臺進入后臺
      onUniNViewMessage 對 nvue 頁面發(fā)送的數(shù)據進行監(jiān)聽,可參考 nvue 向 vue 通訊
    • 頁面生命周期

      函數(shù)名 說明
      onLoad 監(jiān)聽頁面加載,其參數(shù)為上個頁面?zhèn)鬟f的數(shù)據,參數(shù)類型為Object(用于頁面?zhèn)鲄ⅲ?/td>
      onShow 監(jiān)聽頁面顯示。頁面每次出現(xiàn)在屏幕上都觸發(fā),包括從下級頁面點返回露出當前頁面
      onReady 監(jiān)聽頁面初次渲染完成。注意如果渲染速度快,會在頁面進入動畫完成前觸發(fā)
      onHide 監(jiān)聽頁面隱藏
      onUnload 監(jiān)聽頁面卸載
      onPullDownRefresh 監(jiān)聽用戶下拉動作,一般用于下拉刷新
      onReachBottom 頁面滾動到底部的事件(不是scroll-view滾到底),常用于上拉加載下一頁數(shù)據。如使用scroll-view導致頁面級沒有滾動,則觸底事件不會被觸發(fā)
      onPageScroll 監(jiān)聽頁面滾動,參數(shù)為Object
    • vue組件生命周期

    頁面也有組件的生命周期,但是組件沒有頁面的生命周期

    頁面生命周期中,onload不能直接訪問dom,onready可以

    // 在一個頁面中同時有頁面生命周期和組件生命周期
    created() {
      console.log('create')
    },
    onLoad() {
      console.log('load')
    },
    beforeMount() {
      console.log('beforemount')
    },
    beforeCreate() {
      console.log('beforecreate')
    },
    onReady() {
      console.log('ready')
    },
    mounted(){
      console.log('mounted')
    },

    // h5、app中順序
    // beforecreate -> load -> create -> beforemount -> ready -> mounted
    
    // 微信和支付寶小程序中順序
    // beforecreate -> create -> beforemount -> load -> mounted ->ready
復制代碼
    // 頁面
    onLoad() {
      console.log('load')
    },
    onReady() {
      console.log('ready')
    }
    // 組件
    beforeCreate() {
      console.log('comp-before-create')
    },
    beforeMount() {
      console.log('comp-before-mount')
    },
    created() {
      console.log('comp-create')
    },
    mounted() {
      console.log('comp-mounted')
    }
// h5、支付寶小程序、app中順序
// load -> comp-before-create -> comp-create -> comp-before-mount -> comp-mounted -> ready

// 微信小程序中順序
// comp-before-create -> comp-create -> comp-before-mount -> load -> comp-mounted -> ready
復制代碼
復制代碼

  1. 條件編譯

    // #ifdef H5 || MP-WEIXIN
    h5和微信小程序平臺特有
    // #endif
    
    // #ifndef APP-PLUS || MP-ALIPAY
    app和支付寶小程序之外的平臺特有
    // #endif
    復制代碼

    不同文件使用不同注釋方式,js使用// 注釋,css使用/* 注釋 */,vue模板使用

    靜態(tài)資源static目錄下也可使用條件編譯,只要目錄名為對應平臺名就可以實現(xiàn)條件編譯

    條件編譯不區(qū)分安卓和ios,使用uni.getSystemInfo區(qū)分二者

  2. socped

    h5默認開啟scoped,其它平臺未開啟

  3. v-html

    小程序不支持v-html

  4. 組件命名

    建議加上前綴防止沖突(不能是u和uni,微信小程序不能使用wx)

  5. 組件樣式

    如果直接在父組件在子組件上使用class且class不是子組件的prop,在支付寶小程序處無效。父組件為子組件添加樣式時,需要外面使用一個原生的組件比如view

  6. 對原生的組件,例如view、text設置ref,在小程序中為undefined,h5、app正常。封裝的組件能正常使用。

  7. 使用position:fixed;bottom:0;top:0;時,h5端表現(xiàn)為fixed元素與標題欄或導航欄重疊。原因為在h5端標題和導航都是一個組件,可用窗口大小包括二者??墒褂?code style="font-size: 14px; word-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin: 0 2px; color: #1e6bb8; background-color: rgba(27,31,35,.05); font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; word-break: break-all;">uni.getSystemInfo獲取系統(tǒng)信息,在h5和app中會有windowTopwindowBottom兩個參數(shù)表示可用窗口頂部和底部位置。使用條件編譯動態(tài)的設置top和bottom的值。

  8. promise

    框架進行promise封裝的部分api(例如uni.request),回調參數(shù)是一個數(shù)組,第一項為錯誤信息,第二項是返回的數(shù)據。

  9. css如果使用本地圖片路徑和本地字體路徑,需要使用~@開頭的絕對路徑~@/static/imgs/a.png。40k以下的本地圖片或字體會被轉換成base64,超過的需要使用網絡資源。

uview-ui

  1. 小程序中u-input和u-field使用v-model后不支持vue的修飾符(trim,number,lazy),其中trim會報錯 “Property or method "$$v" is not defined on the instance but referenced during render”。組件提供trim屬性。

  2. 支付寶小程序使用u-cell-item組件且未使用label屬性時,會報錯 “TypeError: Cannot read property 'label' of undefined”。在u-cell-item源碼28行處理。

相關案例查看更多