使用uniapp开发app遇到的一些坑
开发前10问10答
问
1、只需要编译成app,页面是否全部用nvue性能更好?
2、nvue编译成app,是否全部生成的原生组件,而不是webview?
3、nvue页面的编译模式,分别用weex 组件编译模式和uni-app 组件编译模式,分别编译成app,app的性能有差异吗?
4、用uni-app 组件编译模式,就不支持weex ui了吗?
5、nvue里用BindingX和css3,在app中哪个效果更好?
6、.nvue和.vue能否通过uni.emit以及uni.navigateTo带参数,来通信?我试了下好像可以,那文档这个 https://uniapp.dcloud.io/use-weex?id=nvue-和-vue-相互通讯为何看来如此麻烦?
7、nvue可否使用拓展组件(uni-ui)
8、条件编译的APP-PLUS-NVUE和APP-PLUS区别区别是撒?
9、在.nvue中使用input组件,默认用的是weex的input还是uni-app的input?
10、如同时存在.vue和.nvue页面,要写一个公共组件共它们共同使用,这个公共组件应该是.vue还是.nvue?
11、条件编译 APP-PLUS 包含 APP-PLUS-NVUE吗 ?
另外,为什么我看官方demo条件编译写的的是APP-NVUE而不是APP-PLUS-NVUE,这俩有区别吗?
答
1、nvue会对应weex渲染,原生体验更好;
2、不是webview;
3、没有性能差异,uni-app模式是指使用uni的组件可以对应成weex,nvue还可以生成mp/H5;
4、支持weex-ui,不过只在app支持;在uni-app编译模式下,weex-ui等三方组件库可能会出现样式问题,主要是weex中px响应式的原因;可手动修改部分代码实现兼容。
5、频繁交换数据的使用bindingX(见bindingX说明)。css动画和animation模块基本上没有性能差异;
6、可以使用uni.$on、uni.$emit以及uni.navigateTo
。这个文档里面的其实我没有用过;
7、uni-ui会进行更新,适配nvue页面开发(现在有一个nvue分支);
8、前者是为了在nvue页面使用的,APP-PLUS只是指app平台,有可能是vue页面,有可能是nvue页面;
9、在app端对应成weex的;
10、公共组件写成vue格式。其实所有的组件都可以写成vue格式,最终是什么取决于引用的页面以及编译到的平台。
11、APP-PLUS 包含 APP-PLUS-NVUE,APP-NVUE 是 APP-PLUS-NVUE 简写
nvue页面
1、要阻止事件冒泡,.stop修饰符无效,需要调用事件对象e.stopPropagation()。
issues
2、weex对Android端对box-shadow属性还不支持,所有让设计别设计阴影或者用图片代替weex
3、nvue app 的refresh组件在list列表内容不足一屏且不为空的情况下下拉后不消失。解决:在隐藏refresh对代码片段外包一个setTimeout
setTimeout(()=>{
activeTab.refreshing = false;
activeTab.refreshText = "已刷新";
activeTab.refreshFlag = false;
}, 0)