生命周期應(yīng)用生命周期函數(shù)名 | 說(shuō)明 |
---|
onlaunch | 當(dāng)uni-app初始化完成時(shí)觸發(fā)(全局只觸發(fā)一次) | onShow | 當(dāng)uni-app啟動(dòng),或從后臺(tái)進(jìn)入前臺(tái)顯示 | onHide | 當(dāng)uni-app從前臺(tái)進(jìn)入后臺(tái) | onError | 當(dāng)uni-app報(bào)錯(cuò)時(shí)觸發(fā) | onUniNViewMessage | 對(duì)nvue頁(yè)面發(fā)送的數(shù)據(jù)進(jìn)行監(jiān)聽(tīng) |
頁(yè)面生命周期函數(shù)名 | 說(shuō)明 | 平臺(tái)差異說(shuō)明 |
---|
onLoad | 監(jiān)聽(tīng)頁(yè)面加載,其參數(shù)為上個(gè)頁(yè)面?zhèn)鬟f的數(shù)據(jù),參數(shù)類型為Object(用于頁(yè)面?zhèn)鲄? |
| onShow | 監(jiān)聽(tīng)頁(yè)面顯示。頁(yè)面每次出現(xiàn)在屏幕上都觸發(fā),包括從下級(jí)頁(yè)面點(diǎn)返回露出當(dāng)前頁(yè)面 |
| onReady | 監(jiān)聽(tīng)頁(yè)面初次渲染完成。注意如果渲染速度快,會(huì)在頁(yè)面進(jìn)入動(dòng)畫(huà)完成前觸發(fā) |
| onHide | 監(jiān)聽(tīng)頁(yè)面隱藏 |
| onUnload | 監(jiān)聽(tīng)頁(yè)面卸載 |
| onResize | 監(jiān)聽(tīng)窗口尺寸變化 | App、微信小程序 | onPullDownRefresh | 監(jiān)聽(tīng)用戶下拉動(dòng)作,一般用于下拉刷新 |
| onReachBottom | 頁(yè)面上拉觸底事件的處理函數(shù) |
| onTabItemTap | 點(diǎn)擊tab時(shí)觸發(fā),參數(shù)為Object | 微信小程序、百度小程序、H5、App(自定義組件模式) | onShareAppmessage | 用戶點(diǎn)擊右上角分享 | 微信小程序、百度小程序、字節(jié)跳動(dòng)小程序、支付寶小程序 | onPageScroll | 監(jiān)聽(tīng)頁(yè)面滾動(dòng),參數(shù)為Object |
| onNavigationBarButtonTap | 監(jiān)聽(tīng)原生標(biāo)題欄按鈕點(diǎn)擊事件,參數(shù)為Object | 5 App、H5 | onBackPress | 監(jiān)聽(tīng)頁(yè)面返回,返回event = {from:backbutton、navigateBack},backbutton表示來(lái)源是左上角返回按鈕或android返回鍵;navigateBack表示來(lái)源是uni.navigateBack | App、H5 | onNavigationBarSearchInputChanged | 監(jiān)聽(tīng)原生標(biāo)題欄搜索輸入框內(nèi)容變化事件 | App、H5 | onNavigationBarSearchInputConfirmed | 監(jiān)聽(tīng)原生標(biāo)題欄搜索輸入框搜索事件,用戶點(diǎn)擊軟鍵盤(pán)上的“搜索”按鈕時(shí)觸發(fā) | App、H5 | onNavigationBarSearchInputClicked | 監(jiān)聽(tīng)原生標(biāo)題欄搜索輸入框點(diǎn)擊事件 | App、H5 |
onPageScroll參數(shù)說(shuō)明: 屬性 | 類型 | 說(shuō)明 |
---|
scrollTop | Number | 頁(yè)面在垂直方向已滾動(dòng)的距離(單位px) |
onTabItemTap參數(shù)說(shuō)明: 屬性 | 類型 | 說(shuō)明 |
---|
index | String | 被點(diǎn)擊tabItem的序號(hào),從0開(kāi)始 | pagePath | String | 被點(diǎn)擊tabItem的頁(yè)面路徑 | text | String | 被點(diǎn)擊tabItem的按鈕文字 |
onTabItemTap常用于點(diǎn)擊當(dāng)前tabitem,滾動(dòng)或刷新頁(yè)面。如果是點(diǎn)擊不同的tabitem,一定會(huì)觸發(fā)頁(yè)面切換。 如果想在App端實(shí)現(xiàn)點(diǎn)擊某個(gè)tabitem不跳轉(zhuǎn)頁(yè)面,不能使用onTabItemTap,可以使用plus.nativeObj.view放一個(gè)區(qū)塊蓋住原先的tabitem,并攔截點(diǎn)擊事件。
onNavigationBarButtonTap參數(shù)說(shuō)明: 屬性 | 類型 | 說(shuō)明 |
---|
index | Number | 原生標(biāo)題欄按鈕數(shù)組的下標(biāo) |
onBackPress回調(diào)參數(shù)對(duì)象說(shuō)明: 屬性 | 類型 | 說(shuō)明 |
---|
from | String | 觸發(fā)返回行為的來(lái)源:‘backbutton’——左上角導(dǎo)航欄按鈕及安卓返回鍵;‘navigateBack’——uni.navigateBack()方法。 |
export default {
data() {
return {};
},
onBackPress(options) {
console.log('from:' options.from)
}
} 組件生命周期函數(shù)名 | 說(shuō)明 | 平臺(tái)差異說(shuō)明 |
---|
beforeCreate | 在實(shí)例初始化之后被調(diào)用 |
| created | 在實(shí)例創(chuàng)建完成后被立即調(diào)用 |
| beforeMount | 在掛載開(kāi)始之前被調(diào)用 |
| mounted | 掛在到實(shí)例上去之后調(diào)用 |
| beforeUpdate | 數(shù)據(jù)更新時(shí)調(diào)用,發(fā)生在虛擬DOM打補(bǔ)丁之前 | 僅H5平臺(tái)支持 | updated | 由于數(shù)據(jù)更改導(dǎo)致的虛擬DOM重新渲染和打補(bǔ)丁,在這之后會(huì)調(diào)用該鉤子 | 僅H5平臺(tái)支持 | beforeDestroy | 實(shí)例銷毀之前調(diào)用 |
| destoryed | Vue實(shí)例銷毀后調(diào)用。調(diào)用后,Vue實(shí)例指示的所有東西都會(huì)解除綁定,多有的事件監(jiān)聽(tīng)器會(huì)被移除,所有的子實(shí)例也會(huì)被銷毀 |
|
路由uni-app頁(yè)面路由為框架統(tǒng)一管理,開(kāi)發(fā)者需要在page.json里配置每個(gè)路由頁(yè)面的路徑及頁(yè)面樣式。類似小程序在app.json中配置頁(yè)面路由一樣。所以u(píng)ni-app的路由用法與Vue Router不同,如仍希望采用Vue Router方式管理路由,可在插件市場(chǎng)搜索Vue-Router。 路由跳轉(zhuǎn)使用navigator組件跳轉(zhuǎn) 調(diào)用API跳轉(zhuǎn)
頁(yè)面棧框架以棧的形式管理當(dāng)前所有頁(yè)面,當(dāng)發(fā)生路由切換的時(shí)候,頁(yè)面棧的表現(xiàn)如下: 路由方式 | 頁(yè)面棧表現(xiàn) | 觸發(fā)時(shí)機(jī) |
---|
初始化 | 新頁(yè)面入棧 | uni-app打開(kāi)的第一個(gè)頁(yè)面 | 打開(kāi)新頁(yè)面 | 新頁(yè)面入棧 | 調(diào)用API uni.navigateTo、使用組件 < navigator open-type=“navigate”/> | 頁(yè)面重定向 | 當(dāng)前頁(yè)面出棧,新頁(yè)面入棧 | 調(diào)用API uni.redirectTo、使用組件 < navigator open-type=“redirectTo”/> | 頁(yè)面返回 | 頁(yè)面不斷出棧,直到目標(biāo)頁(yè)面返回頁(yè) | 調(diào)用API uni.navigateBack、使用組件 < navigator open-type=“navigateBack”/>、用戶按左上角返回按鈕、安卓用戶點(diǎn)擊物理back按鍵 | Tab切換 | 頁(yè)面全部出棧,只留下新的Tab頁(yè)面 | 調(diào)用API uni.switchTab、使用組件 < navigator open-type=“switchTab”/>、用戶切換Tab | 重加載 | 頁(yè)面全部出棧,只留下新的頁(yè)面 | 調(diào)用API uni.reLaunch、使用組件 < navigator open-type=“reLaunch”/> |
運(yùn)行環(huán)境判斷生產(chǎn)環(huán)境和開(kāi)發(fā)環(huán)境if(process.env.NODE_ENV === 'development'){
console.log('開(kāi)發(fā)環(huán)境')
} else if(process.env.NODE_ENV === 'production'){
console.log('生產(chǎn)環(huán)境')
} 判斷平臺(tái)switch(uni.getSystemInfoSync().platform){
case 'android':
console.log('運(yùn)行Android上')
break;
case 'ios':
console.log('運(yùn)行iOS上')
break;
default:
console.log('運(yùn)行在開(kāi)發(fā)者工具上')
break;
} 配置pages.jsonpages.json文件用來(lái)對(duì)uni-app進(jìn)行全局配置,決定頁(yè)面文件的路徑、窗口樣式、原生的導(dǎo)航欄、底部的原生tabbar等。類似微信小程序中app.json的頁(yè)面管理部分。 配置項(xiàng)列表: 屬性 | 類型 | 必填 | 描述 |
---|
globalStyle | Object | 否 | 設(shè)置默認(rèn)頁(yè)面的窗口表現(xiàn) | pages | Object Array | 是 | 設(shè)置頁(yè)面路徑及窗口表現(xiàn) | easycom | Object | 否 | 組件自動(dòng)引入規(guī)則 | tabBar | Object | 否 | 設(shè)置底部tab的表現(xiàn) | condition | Object | 否 | 啟動(dòng)模式配置 | subPackages | Object Array | 否 | 分包加載配置 | preloadRule | Object | 否 | 分包預(yù)下載規(guī)則 | workers | String | 否 | Worker代碼放置目錄 |
{
"pages": [{
"path": "pages/component/index",
"style": {
"navigationBarTitleText": "組件"
}
}, {
"path": "pages/API/index",
"style": {
"navigationBarTitleText": "接口"
}
}, {
"path": "pages/component/view/index",
"style": {
"navigationBarTitleText": "view"
}
}],
"condition": { //模式配置,僅開(kāi)發(fā)期間生效
"current": 0, //當(dāng)前激活的模式(list 的索引項(xiàng))
"list": [{
"name": "test", //模式名稱
"path": "pages/component/view/index" //啟動(dòng)頁(yè)面,必選
}]
},
"globalStyle": {
"navigationBarTextStyle": "black",
"navigationBarTitleText": "演示",
"navigationBarBackgroundColor": "#F8F8F8",
"backgroundColor": "#F8F8F8",
"usingComponents":{
"collapse-tree-item":"/components/collapse-tree-item"
},
"renderingMode": "seperated", // 僅微信小程序,webrtc 無(wú)法正常時(shí)嘗試強(qiáng)制關(guān)閉同層渲染
"pageOrientation": "portrait"//橫屏配置,全局屏幕旋轉(zhuǎn)設(shè)置(僅 APP/微信/QQ小程序),支持 auto / portrait / landscape
},
"tabBar": {
"color": "#7A7E83",
"selectedColor": "#3cc51f",
"borderStyle": "black",
"backgroundColor": "#ffffff",
"height": "50px",
"fontSize": "10px",
"iconWidth": "24px",
"spacing": "3px",
"list": [{
"pagePath": "pages/component/index",
"iconPath": "static/image/icon_component.png",
"selectedIconPath": "static/image/icon_component_HL.png",
"text": "組件"
}, {
"pagePath": "pages/API/index",
"iconPath": "static/image/icon_API.png",
"selectedIconPath": "static/image/icon_API_HL.png",
"text": "接口"
}],
"midButton": {
"width": "80px",
"height": "50px",
"text": "文字",
"iconPath": "static/image/midButton_iconPath.png",
"iconWidth": "24px",
"backgroundImage": "static/image/midButton_backgroundImage.png"
}
},
"easycom": {
"autoscan": true, //是否自動(dòng)掃描組件
"custom": {//自定義掃描規(guī)則
"uni-(.*)": "@/components/uni-$1.vue"
}
}
} mainfest.jsonmainfest.json文件是應(yīng)用的配置文件,用于指定應(yīng)用的名稱、圖標(biāo)、權(quán)限等。 配置項(xiàng)列表: 屬性 | 類型 | 默認(rèn)值 | 描述 |
---|
name | String |
| 應(yīng)用名稱 | appid | String | 新建uni-app項(xiàng)目時(shí),DCloud云端分配 | 應(yīng)用標(biāo)識(shí) | description | String |
| 應(yīng)用描述 | versionCode | String |
| 版本號(hào) | versionName | String |
| 版本名稱 | transformPx | Boolean | true | 是否轉(zhuǎn)換項(xiàng)目的px,為true時(shí)將px轉(zhuǎn)換為rpx,為false時(shí),px為傳統(tǒng)的實(shí)際像素 | networkTimeout | Object |
| 網(wǎng)絡(luò)超時(shí)時(shí)間 | debug | Boolean | false | 是否開(kāi)啟debug模式,開(kāi)啟后調(diào)試信息以info的形式給出,其信息有頁(yè)面的注冊(cè),頁(yè)面路由,數(shù)據(jù)更新,事件觸發(fā)等 | uniStatistics | Object |
| 是否開(kāi)啟uni統(tǒng)計(jì),全局配置 | app-plus | Object |
| App特有配置 | h5 | Object |
| H5特有配置 | quickapp | Object |
| 快應(yīng)用特有配置 | mp-weixin | Object |
| 微信小程序特有配置 | mp-alipay | Object |
| 支付寶小程序未提供可配置項(xiàng) | mp-baidu | Object |
| 百度小程序特有配置 | mp-toutiao | Object |
| 字節(jié)跳動(dòng)小程序特有配置 | mp-qq | Object |
| qq小程序特有配置 |
package.json通過(guò)在package.json文件中增加uni-app擴(kuò)展節(jié)點(diǎn),可實(shí)現(xiàn)自定義條件編譯平臺(tái)。 package.json擴(kuò)展配置用法: {
/**
package.json其它原有配置
*/
"uni-app": {// 擴(kuò)展配置
"scripts": {
"custom-platform": { //自定義編譯平臺(tái)配置,可通過(guò)cli方式調(diào)用
"title":"自定義擴(kuò)展名稱", // 在HBuilderX中會(huì)顯示在 運(yùn)行/發(fā)行 菜單中
"BROWSER":"", //運(yùn)行到的目標(biāo)瀏覽器,僅當(dāng)UNI_PLATFORM為h5時(shí)有效
"env": {//環(huán)境變量
"UNI_PLATFORM": "" //基準(zhǔn)平臺(tái)
},
"define": { //自定義條件編譯
"CUSTOM-CONST": true //自定義條件編譯常量,建議為大寫(xiě)
}
}
}
}
} 來(lái)源:https://www./content-4-715451.html
|