區(qū)別:1、uniapp是一個(gè)框架,而HTML是一種標(biāo)記語(yǔ)言。2、組件/標(biāo)簽有差異;例p改成view,span、font改成text,a改成navigator,img改成image。3、uniapp不支持dom操作,HTML支持。
本教程操作環(huán)境:windows7系統(tǒng)、uni-app2.5.1&&HTML5版本、thinkpad t480電腦。
uni-app與HTML的區(qū)別
組件/標(biāo)簽的變化
以前是html標(biāo)簽,現(xiàn)在是小程序標(biāo)簽
- p 改成 view
- span、font 改成 text
- a 改成 navigator
- img 改成 image
- input 還在,但type屬性改成了confirmtype
- form、button、checkbox、radio、label、textarea、canvas、video 這些還在。
- select 改成 picker
- iframe 改成 web-view
- ul、li沒(méi)有了,都用view替代
- audio 不再推薦使用,改成api方式,背景音頻api文檔
其實(shí)老的HTML標(biāo)簽也可以在uni-app里使用,uni-app編譯器會(huì)在編譯時(shí)把老標(biāo)簽轉(zhuǎn)為新標(biāo)簽。但不推薦這種用法,調(diào)試H5端時(shí)容易混亂,基于元素的選擇器也會(huì)出問(wèn)題。
推薦:《uni-app開發(fā)教程》
除了改動(dòng)外,新增了一批手機(jī)端常用的新組件
-
scroll-view 可區(qū)域滾動(dòng)視圖容器
-
swiper 可滑動(dòng)區(qū)域視圖容器
-
icon 圖標(biāo)
-
rich-text 富文本(不可執(zhí)行js,但可渲染各種文字格式和圖片)
-
progress 進(jìn)度條
-
slider 滑塊指示器
-
switch 開關(guān)選擇器
-
camera 相機(jī)
-
live-player 直播
-
map 地圖
-
cover-view 可覆蓋原生組件的視圖容器
cover-view需要多強(qiáng)調(diào)幾句,uni-app的非h5端的video、map、canvas、textarea是原生組件,層級(jí)高于其他組件。如需覆蓋原生組件,比如在map上加個(gè)遮罩,則需要使用cover-view組件
除了內(nèi)置組件,還有很多開源的擴(kuò)展組件,把常用操作都進(jìn)行封裝,DCloud建立了插件市場(chǎng)收錄這些擴(kuò)展組件,詳見(jiàn)插件市場(chǎng)
js的變化
運(yùn)行環(huán)境從瀏覽器變成v8引擎
- 標(biāo)準(zhǔn)js語(yǔ)法和api都支持,比如if、for、settimeout、indexOf等
- 但瀏覽器專用的window、document、navigator、location對(duì)象,只有在瀏覽器中才有,app和小程序都不支持,這意味著依賴document的很多HTML的庫(kù),比如jqurey無(wú)法使用。但是app和小程序支持web-view組件,里面可以加載標(biāo)準(zhǔn)HTML,這種頁(yè)面仍然支持瀏覽器專用對(duì)象window、document、navigator、location
以前的dom操作,改成vue的MVVM模式
- alert,confirm 改成 uni.showmodel
- ajax 改成 uni.request
- cookie、session 沒(méi)有了,local.storage 改成 uni.storage
- uni-app的js api還有很多,但基本就是小程序的api,把wx.xxx改為uni.xxx即可
css的變化
- 選擇器有2個(gè)變化:*選擇器不支持;元素選擇器里沒(méi)有body,改為了page
- 單位方面,px無(wú)法動(dòng)態(tài)適應(yīng)不同寬度的屏幕,rem只能用于h5、rpx只能用于微信小程序。為此uni-app新增了 upx ,通吃所有端、所有屏幕寬度的動(dòng)態(tài)單位 upx
- uni-app推薦使用flex布局,并默認(rèn)就是flex布局