uniapp中vue与nvue的区别
介绍
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不支持媒体查询,所以横竖屏动态切换、动态适配屏幕是很困难的。