Uni-app與傳統(tǒng)web.html的差異

<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就可以。

  1. 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。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容