初識 uni app

uni app是什么?

uni-app 是一個使用 Vue.js 開發(fā)所有前端應(yīng)用的框架龙考,開發(fā)者編寫一套代碼蟆肆,可發(fā)布到iOS矾睦、Android晦款、Web(響應(yīng)式)、以及各種小程序(微信/支付寶/百度/頭條/QQ/釘釘/淘寶)枚冗、快應(yīng)用等多個平臺缓溅。

快速上手(vscode編輯器)

1.安裝腳手架

cnpm i -g @vue/cli

2.創(chuàng)建uniapp

  • tips:dcloudio/uni-preset-vue 如果安裝不成功,可以去github下載到本地進(jìn)行安裝創(chuàng)建項(xiàng)目
vue create -p dcloudio/uni-preset-vue uniapp-demo 

3.選擇模板赁温,生成項(xiàng)目

選擇模板
項(xiàng)目目錄

tips:生成以下目錄樹坛怪,首先安裝tree, brew install tree ,執(zhí)行tree -L 3 -I "node_modules" ,具體參數(shù)可看tree文檔

├── README.md //說明
├── babel.config.js //babel 的配置文件
├── package.json //依賴模塊
├── postcss.config.js //postcss 配置文件股囊,autoprefixer插件可以自動生成瀏覽器前綴袜匿; 
├── public //發(fā)布頁面入口
│   └── index.html
├── src
│   ├── App.vue //應(yīng)用配置,用來配置App全局樣式以及監(jiān)聽
│   ├── main.ts //Vue初始化入口文件
│   ├── manifest.json //配置應(yīng)用名稱稚疹、appid居灯、logo、版本等打包信息
│   ├── pages //頁面
│   │   └── index
│   │       └── index.vue
│   ├── pages.json //配置頁面路由内狗、導(dǎo)航條怪嫌、選項(xiàng)卡等頁面類信息
│   ├── sfc.d.ts
│   ├── static // 公共靜態(tài)資源
│   │   └── logo.png
│   └── uni.scss //通用樣式
├── tsconfig.json
└── yarn.lock
生命周期
  • 應(yīng)用生命周期 tips:應(yīng)用生命周期僅可在App.vue中監(jiān)聽,在其它頁面監(jiān)聽無效柳沙。
函數(shù)名 說明
onLaunch 當(dāng)uni-app 初始化完成時觸發(fā)(全局只觸發(fā)一次)
onShow 當(dāng) uni-app 啟動岩灭,或從后臺進(jìn)入前臺顯示
onHide 當(dāng) uni-app 從前臺進(jìn)入后臺
  • 頁面生命周期tips:先觸發(fā) uni-app onReady ,后觸發(fā) vue 的 mounted 建議使用uni-app的onLoad 代替 vue的 created
函數(shù)名 說明
onLoad 監(jiān)聽頁面加載赂鲤,其參數(shù)為上個頁面?zhèn)鬟f的數(shù)據(jù)噪径,參數(shù)類型為Object(用于頁面?zhèn)鲄ⅲ┲簦瑓⒖?a target="_blank">示例
onShow 監(jiān)聽頁面顯示。頁面每次出現(xiàn)在屏幕上都觸發(fā)找爱,包括從下級頁面點(diǎn)返回露出當(dāng)前頁面
onReady 監(jiān)聽頁面初次渲染完成膨更。注意如果渲染速度快,會在頁面進(jìn)入動畫完成前觸發(fā)
onHide 監(jiān)聽頁面隱藏
onUnload 監(jiān)聽頁面卸載
onResize 監(jiān)聽窗口尺寸變化
onPullDownRefresh 監(jiān)聽用戶下拉動作缴允,一般用于下拉刷新荚守,參考示例
onReachBottom 頁面滾動到底部的事件(不是scroll-view滾到底),常用于下拉下一頁數(shù)據(jù)练般。具體見下方注意事項(xiàng)
onTabItemTap 點(diǎn)擊 tab 時觸發(fā)矗漾,參數(shù)為Object,具體見下方注意事項(xiàng)
onShareAppMessage 用戶點(diǎn)擊右上角分享
onPageScroll 監(jiān)聽頁面滾動薄料,參數(shù)為Object
onNavigationBarButtonTap 監(jiān)聽原生標(biāo)題欄按鈕點(diǎn)擊事件
onBackPress 監(jiān)聽頁面返回敞贡,返回 event = {from:backbutton、 navigateBack} 摄职,backbutton 表示來源是左上角返回按鈕或 android 返回鍵誊役;navigateBack表示來源是 uni.navigateBack ;詳細(xì)說明及使用:onBackPress 詳解谷市。支付寶小程序只有真機(jī)能觸發(fā)蛔垢,只能監(jiān)聽非navigateBack引起的返回,不可阻止默認(rèn)行為迫悠。
onNavigationBarSearchInputChanged 監(jiān)聽原生標(biāo)題欄搜索輸入框輸入內(nèi)容變化事件
onNavigationBarSearchInputConfirmed 監(jiān)聽原生標(biāo)題欄搜索輸入框搜索事件鹏漆,用戶點(diǎn)擊軟鍵盤上的“搜索”按鈕時觸發(fā)。
onNavigationBarSearchInputClicked 監(jiān)聽原生標(biāo)題欄搜索輸入框點(diǎn)擊事件
onShareTimeline 監(jiān)聽用戶點(diǎn)擊右上角轉(zhuǎn)發(fā)到朋友圈
onAddToFavorites 監(jiān)聽用戶點(diǎn)擊右上角收藏
  • 組件生命周期
函數(shù)名 說明
beforeCreate 在實(shí)例初始化之后被調(diào)用
created 在實(shí)例創(chuàng)建完成后被立即調(diào)用
beforeMount 在掛載開始之前被調(diào)用
mounted 掛載到實(shí)例上去之后調(diào)用
beforeDestroy 實(shí)例銷毀之前調(diào)用创泄。在這一步艺玲,實(shí)例仍然完全可用
destroyed Vue 實(shí)例銷毀后調(diào)用。調(diào)用后鞠抑,Vue 實(shí)例指示的所有東西都會解綁定饭聚,所有的事件監(jiān)聽器會被移除,所有的子實(shí)例也會被銷毀
頁面適配

uni-app 支持的通用 css 單位包括 px搁拙、rpx

  • rpx 是由微信小程序提出一種方案秒梳,解決自適應(yīng)屏幕尺寸的尺寸單位,即響應(yīng)式 px感混,一種根據(jù)屏幕寬度自適應(yīng)的動態(tài)單位端幼。以750寬的屏幕為基準(zhǔn),750rpx恰好為屏幕寬度弧满。屏幕變寬婆跑,rpx 實(shí)際顯示效果會等比放大,但在 App 端和 H5 端屏幕寬度達(dá)到 960px 時庭呜,默認(rèn)將按照 375px(iphone6) 的屏幕寬度進(jìn)行計(jì)算
// px換算rpx
1px = 2rpx  //舉個例子滑进,字體大小是12px,換算為rpx應(yīng)該是24rpx
標(biāo)簽與組件相關(guān)
文件配置相關(guān)
頁面跳轉(zhuǎn)及路由

uniapp 有自己一套路由管理機(jī)制犀忱,而未采用vue-route方案

函數(shù)名 說明
uni.navigateTo 保留當(dāng)前頁面,跳轉(zhuǎn)到應(yīng)用內(nèi)的某個頁面扶关,使用uni.navigateBack可以返回到原頁面阴汇。
uni.redirectTo 關(guān)閉當(dāng)前頁面,跳轉(zhuǎn)到應(yīng)用內(nèi)的某個頁面节槐。
uni.reLaunch 關(guān)閉所有頁面搀庶,打開到應(yīng)用內(nèi)的某個頁面。
uni.switchTab 跳轉(zhuǎn)到 tabBar 頁面铜异,并關(guān)閉其他所有非 tabBar 頁面哥倔。
uni.navigateBack 關(guān)閉當(dāng)前頁面,返回上一頁面或多級頁面揍庄∨剌铮可通過 getCurrentPages() 獲取當(dāng)前的頁面棧,決定需要返回幾層蚂子。
uni.preloadPage 預(yù)加載頁面沃测,是一種性能優(yōu)化技術(shù)。被預(yù)載的頁面食茎,在打開時速度更快蒂破。
uni. navigateTo({
    url:'/pages/index/index',
    success(){
        console.log('成功跳轉(zhuǎn)頁面')
    }
})
請求

uniapp 提供網(wǎng)絡(luò)請求的 apiuni.request,具體支持的請求方法可以參考官網(wǎng)
在各個小程序平臺運(yùn)行時董瞻,網(wǎng)絡(luò)相關(guān)的 API 在使用前需要配置域名白名單寞蚌。
不支持jsonp田巴,跨域問題需要再mainfest.json中配置跨域代理

uni.request({
    url: 'https://xxx.xxx.xxx/request', //僅為示例钠糊,并非真實(shí)接口地址。
    data: {
        text: 'demo'
    },
    method:'POST',
    header: {
        'Content-Type' : 'application/json',
    },
    success: (res) => {
        console.log(res.data);
    }
});
補(bǔ)充
  • 如果不需要支持app端壹哺,則文件可以直接是.vue抄伍,如需支持則是.nvue
  • uniapp支持兩種渲染引擎
    • h5,小程序走的是webview渲染
    • app走的是weex渲染【原生】
  • uni-app在打包成h5時,默認(rèn)是不支持直接打開的管宵,因?yàn)榇虬鰜硎?(/xxx/xxx)這種格式截珍,可在vue.config中配置publicPath,把它配置成(./),但在uni-app中找不到這個文件的箩朴。其中官網(wǎng)有提到 點(diǎn)擊查看publPath岗喉。
 "h5" : {  
        "publicPath":"./"
    }
插件市場
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市炸庞,隨后出現(xiàn)的幾起案子钱床,更是在濱河造成了極大的恐慌,老刑警劉巖埠居,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件查牌,死亡現(xiàn)場離奇詭異事期,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)纸颜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門兽泣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人胁孙,你說我怎么就攤上這事唠倦。” “怎么了涮较?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵牵敷,是天一觀的道長。 經(jīng)常有香客問我法希,道長枷餐,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任苫亦,我火速辦了婚禮毛肋,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘屋剑。我一直安慰自己润匙,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布唉匾。 她就那樣靜靜地躺著孕讳,像睡著了一般。 火紅的嫁衣襯著肌膚如雪巍膘。 梳的紋絲不亂的頭發(fā)上厂财,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天,我揣著相機(jī)與錄音峡懈,去河邊找鬼璃饱。 笑死,一個胖子當(dāng)著我的面吹牛肪康,可吹牛的內(nèi)容都是我干的荚恶。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼磷支,長吁一口氣:“原來是場噩夢啊……” “哼谒撼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起雾狈,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤廓潜,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體茉帅,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡叨叙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了堪澎。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片擂错。...
    茶點(diǎn)故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖樱蛤,靈堂內(nèi)的尸體忽然破棺而出钮呀,到底是詐尸還是另有隱情,我是刑警寧澤昨凡,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布爽醋,位于F島的核電站,受9級特大地震影響便脊,放射性物質(zhì)發(fā)生泄漏蚂四。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一哪痰、第九天 我趴在偏房一處隱蔽的房頂上張望遂赠。 院中可真熱鬧,春花似錦晌杰、人聲如沸跷睦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽抑诸。三九已至,卻和暖如春爹殊,著一層夾襖步出監(jiān)牢的瞬間蜕乡,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工边灭, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留异希,地道東北人。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓绒瘦,卻偏偏與公主長得像,于是被迫代替她去往敵國和親扣癣。 傳聞我的和親對象是個殘疾皇子惰帽,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容