組件/標簽的變化
以前是html標簽,現在是小程序標簽
- div 改成 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沒有了,都用view替代
- audio 不再推薦使用,改成api方式,背景音頻api文檔
其實老的HTML標簽也可以在uni-app里使用,uni-app編譯器會在編譯時把老標簽轉為新標簽。但不推薦這種用法,調試H5端時容易混亂,基於元素的選擇器也會出問題。
除了改動外,新增了一批手機端常用的新組件
-
scroll-view 可區域滾動視圖容器
-
swiper 可滑動區域視圖容器
-
icon 圖標
-
rich-text 富文本(不可執行js,但可渲染各種文字格式和圖片)
-
progress 進度條
-
slider 滑塊指示器
-
switch 開關選擇器
-
camera 相機
-
live-player 直播
-
map 地圖
-
cover-view 可覆蓋原生組件的視圖容器
cover-view需要多強調幾句,uni-app的非h5端的video、map、canvas、textarea是原生組件,層級高於其他組件。如需覆蓋原生組件,比如在map上加個遮罩,則需要使用cover-view組件
除了內置組件,還有很多開源的擴展組件,把常用操作都進行封裝,DCloud建立了插件市場收錄這些擴展組件,詳見插件市場
js的變化
運行環境從瀏覽器變成v8引擎
- 標准js語法和api都支持,比如if、for、settimeout、indexOf等
- 但瀏覽器專用的window、document、navigator、location對象,只有在瀏覽器中才有,app和小程序都不支持,這意味着依賴document的很多HTML的庫,比如jqurey無法使用。但是app和小程序支持web-view組件,里面可以加載標准HTML,這種頁面仍然支持瀏覽器專用對象window、document、navigator、location
以前的dom操作,改成vue的MVVM模式
- alert,confirm 改成 uni.showmodel
- ajax 改成 uni.request
- cookie、session 沒有了,local.storage 改成 uni.storage
- uni-app的js api還有很多,但基本就是小程序的api,把wx.xxx改為uni.xxx即可
css的變化
- 選擇器有2個變化:*選擇器不支持;元素選擇器里沒有body,改為了page
- 單位方面,px無法動態適應不同寬度的屏幕,rem只能用於h5、rpx只能用於微信小程序。為此uni-app新增了 upx ,通吃所有端、所有屏幕寬度的動態單位 upx
- uni-app推薦使用flex布局,並默認就是flex布局
作者:cyh_d8ac
鏈接:https://www.jianshu.com/p/2160b8193282
來源:簡書