<meta charset="utf-8">
.HTML文件改為.VUE文件
<html></html>一級節(jié)點(diǎn)改為<template>、<script>、<style>三個(gè)一級節(jié)點(diǎn)
外部引用文件方式變化
從script src和link href改為
js要require進(jìn)來,變成了對象
<script> var util = require('../../../common/util.js'); //require這個(gè)js模塊 var formatedPlayTime = util.formatTime(playTime); //調(diào)用js模塊的方法 </script>
css外部文件導(dǎo)入
<style> @import "./common/uni.css"; </style>
全局樣式在根目錄的app.vue中,每個(gè)頁面都會加載app.vue的樣式。
組件及標(biāo)簽變化
div改成view
span、font改成text
a改成navigator
img改成image
input還在,但type屬性改成了comfirmtype
form、button、checkbox、radio、lable、textarea、canvas、video還在
select改成了picker
irame改成web-view
ul、li沒有了,都用view代替
HTML的老標(biāo)簽還能用,uin-app編譯時(shí)會轉(zhuǎn)為新標(biāo)簽。但容易出現(xiàn)混亂。
新增一些手機(jī)端常用控件
scroll-view:區(qū)域滾動(dòng)容器
swiper:可滑動(dòng)區(qū)域視圖容器
icon:圖標(biāo)
rich-text:富文本
progress:進(jìn)度條
slider:滑塊指示器
switch:開關(guān)選擇器
camera:相機(jī)
live-layer:直播
cover-view:可覆蓋視圖容器,比如遮罩。
但瀏覽器專用的window、document、navigator、location對象,包括cookie等存儲,只有在瀏覽器中才有,app和小程序都不支持。
Uni-app默認(rèn)采用flex布局,flex支持跨平臺,建議使用。page{display:flex}
Uni-app默認(rèn)的寬度是750px,單位寫成px不同尺寸屏幕會自動(dòng)適配每個(gè)px的大小。
對于不同手機(jī)屏幕以及pad的適配,只需要寬度使用百分比%,高度使用px就可以。
- JS注意
非H5端,不能使用瀏覽器自帶對象,比如document、window、localstorage、cookie等,更不能使用jquery等依賴這些瀏覽器對象的框架。因?yàn)楦骷倚〕绦蚩鞈?yīng)用都不支持這些對象。
沒有這些瀏覽器自帶對象并不影響業(yè)務(wù)開發(fā),uni提供的api足夠完成業(yè)務(wù)。
uni的api在編譯到web平臺運(yùn)行時(shí),其實(shí)也會轉(zhuǎn)為瀏覽器的js api。
App端若要使用操作window、document的庫,需要通過renderjs來實(shí)現(xiàn)。
uni的api是多端可用的。在條件編譯區(qū),每個(gè)平臺的專有api也可以使用,比如wx.、plus.等api可以分別在微信下和app下使用。
出于降低小程序向uni-app遷移成本的考慮,wx的api在app里也可以直接運(yùn)行,比如寫wx.requst和uni.requst是一樣的,但仍然建議僅在微信的條件編譯區(qū)使用wx的api。
2.Tag注意
- uni-app的tag同小程序的tag,和HTML的tag不一樣,比如div要改成view,span要改成text、a要改成navigator。
- 出于降低h5應(yīng)用向uni-app遷移成本的考慮,寫成div、span也可以運(yùn)行在app和小程序上,因?yàn)閡ni-app編譯器會把這些HTML標(biāo)簽編譯為小程序標(biāo)簽。但仍然建議養(yǎng)成新習(xí)慣。
3.Css注意
- 雖然大部分css樣式在微信小程序和app中都可以支持,但推薦使用flex布局模型,這種布局更靈活高效且支持更多平臺(比如nvue、快應(yīng)用只支持flex布局)
- 單位方面,uni-app默認(rèn)為rpx。
4.工程目錄注意
- 每個(gè)要顯示的頁面,都要放到pages目錄下,新建一個(gè)頁面所在的目錄,然后放同名目錄的vue文件,比如project/pages/lista/lista.vue,并且在pages.json里配置。這與小程序的策略相同。
- 自定義組件,放到component目錄
- 靜態(tài)資源如圖片,固定放到static目錄下。這是webpack、mpvue的規(guī)則
5.數(shù)據(jù)綁定方式的注意
- uni-app 基于Vue 2.0實(shí)現(xiàn),開發(fā)者需注意Vue 1.0 -> 2.0 的使用差異,詳見從 Vue 1.x 遷移
6.每個(gè)頁面支持使用原生title,首頁支持使用原生底部tab,這些是要在pages.json里配置,這些并不是vue頁面的一部分。當(dāng)然vue里的js api也可以動(dòng)態(tài)修改原生title
7.雖然使用vue,但在app和小程序里,不是spa而是mpa
8.位置坐標(biāo)系統(tǒng)一為國測局坐標(biāo)系gcj02,這種坐標(biāo)系可以被多端支持。老版5+的百度定位和百度地圖使用的是百度私有坐標(biāo)系bd09ll,這種坐標(biāo)系需要轉(zhuǎn)換。新版uni-app里的百度地圖已經(jīng)默認(rèn)改為gcj02。高德地圖不受影響,一直是gcj02。