開發者編寫一套代碼,可發布到
uniapp相對vue的區別
- 跟vue一樣,template是一級節點,template下只支持一個根。
- vue實例聲明周期只有8個,而uniapp區分應用生命周期,頁面生命周期,組件生命周期。
- 跟web端相比,在小程序和App端部分功能可能受限制,部分樣式可能不兼容。需要不同端進行調試。
- 標簽區別,vue可以使用HTML5的標簽,uniapp將HTML5<div>,<ul>,<li>,<nav>全部改成了<view>標簽,<p>,<span>,<i>,<b>等全部改成了文字<text>標簽,<a>標簽改成了<navigator>,<img>改成了<image>等。
注:文字樣式僅在text標簽上生效,其他標簽上書寫字體樣式APP端不生效 。 - css也會受到限制,非H5不支持*選擇器,body元素選擇改成了pages。
uniapp中,vue和nvue的區別
- uniapp中APP端,如果使用vue的話則是使用webview渲染,如果使用nvue頁面,則是使用原生渲染。一個app內可同時存在兩種頁面,相互不沖突。
- 以往的weex它只是一個高性能的渲染器,沒有足夠的API能力,很難調起各種sdk集成和其他的功能等,nvue解決了這個問題,但nvue是使用原生渲染所以開發時很大程度的會受到限制,例css樣式等。
- 因nvue平台受限,所以樣式可能很難兼容,建議使用flex布局。
uniapp條件編譯
因為uniapp是跨端開發,所以有時候會遇到一個功能寫幾套代碼,或者h5和小程序頁面不一致時,如果大量書寫if eles會造成代碼執行能力低下管理混亂,代碼可讀性不高,后期維護難以理解等問題,這個時候就需要使用條件編譯了。
uniapp參照C語言的編譯條件使用編譯條件來完成不同端的工作。
平台名有:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
支持文件:
- .vue
- .js
- .css
- pages.json
- 各類型編譯語言文件:.less,.scss,.stylus,.ts,.pug
編譯方法:
-
僅出現在某個平台。
// #ifdef
平台名 需要在此平台執行的代碼
// #endif
-
除了此平台,其它平台均存在的代碼
// #ifndef
平台名 需要在其他平台執行的代碼
// #endif
-
可寫多個平台(注:這里只能有||,不能使用&&,因為沒有交集),例:
// #ifndef
H5 ||MP 在 H5平台或程序平台存在的代碼
// #endif
開發工具
建議使用HBuilderX進行開發。
下載地址:HBuilder官方IDE下載地址