介紹
uniapp是邏輯與渲染分離的。在App端提供了2套渲染引擎:小程序方式的webview渲染和weex方式的原生渲染;vue文件走的是webview渲染,nvue文件走的weex原生渲染,uniapp根據文件類型選擇渲染引擎;組件與JS寫法是一樣的,css不一樣,nvue文件css樣式不同表現在以下幾點:
一、僅支持class選擇器,而且不支持父子、兄弟class選擇器,比如:.class1 .class2 {} /*錯誤*/;
二、寬度使用100%無效,如需撐滿頁面可使用 width:750rpx,不支持媒體查詢;
三、不支持less與sass;
四、不支持border,background等簡寫。
優勢
1.在頁面中某個區域做長列表滾動,則需要使用nvue的list、recycle-list、waterfall等組件。這些組件的性能要高於vue頁面里的區域滾動組件scroll-view;
2.有左右拖動的長列表需求;
3.如需要將軟鍵盤右下角按鈕文字改為“發送”,則需要使用nvue;
4.解決前端控件無法覆蓋原生控件的層級問題,比如有map、vedio,把vedio嵌入swiper以實現抖音滑動切換,全屏上有分享、送禮按鈕等;
5.直播推流,有live-pusher組件;
6.對App啟動速度要求極致化,App端v3編譯器模式下,如果首頁使用nvue且在manifest里配置fast模式,那么App的啟動速度可以控制在1秒左右.
VUE優勢
1.canvas;Android App平台,這個組件干脆沒有內置,而是需要單獨引入;
2.動態橫豎屏。nvue頁面的css不支持媒體查詢,所以橫豎屏動態切換、動態適配屏幕是很困難的。