初学者123
初学者123
  • 发布:2020-08-23 03:18
  • 更新:2022-07-26 15:34
  • 阅读:2781

subNVue子窗体开发踩坑记录

分类:nvue

1.如无绝对必要,请勿使用subNVue!如无绝对必要,请勿使用subNVue!如无绝对必要,请勿使用subNVue!

  1. subNVue页面基本设置,是在pages.json中,如果作用是子窗体,不必单独注册,而是要注册在引用它的vue路径下面;
  2. 子窗体默认从顶部弹出,如果希望从底部弹出,使用dock设置无效,可以在pages.json中设置:"bottom": "0"实现;
  3. 键盘弹起后,如果期望子窗体的高度不被压缩(扣除键盘的高度),可以通过在子窗体的methods中定义子窗体的动态高度,使用setStyle,可动态设置键盘弹起或关闭时的高度,例如可以通过离顶部或底部的百分比来实现。触发事件,通过在template的input标签上进行绑定:@focus, @blur
  4. vue和subNVue页面之间的通讯,使用uni.$emit进行传值和uni.$on接收传值,但是,但是,但是:接收传值时,使用this.var = data.*,将无法在页面获得数据渲染!你必须使用 const vm = this; 先进行指向转化,下面使用vm.var = data.来接收传值,或调用函数;
  5. 如果是一个公共子窗体,则你必须给它起别名!具体来说:id: bieming。没错,id就是这么随意,完全可以由你来定义,当然你没法在奥义的官方文档中猜出这个。在pages.json中引用时,有几个页面要引用,就必须起几个别名,不能重复!在相应的vue页面,你也必须使用与别名一致的id来引用子窗体;
  6. 如果是公共子窗体,你必须使用相应的别名来进行操作。为了避免错误,应当在从vue页面传值时,指定一个参数,来进行来源区分,并在子窗体页面,接收此参数并用于条件判断的依据;
  7. 不要期望从官方文档中获得清晰的思路;
  8. 不要期望从官方运营的QQ群中获得响应或有价值响应;
  9. 不要期望在社区发帖就能获得帮助;
    11.虽然我解决了这些问题,但是从理论上,时间本不应该花在这些问题上,因为这些问题并不是什么技术难题,这只是经验,与技术能力的提升无关
8 关注 分享
9***@qq.com 1***@qq.com 3***@qq.com 8087 夏流 jimleel r***@163.com z***@qq.com

要回复文章请先登录注册

1***@qq.com

1***@qq.com

这评论下面一个官方人员都没有,哎~
2022-07-26 15:34
2***@qq.com

2***@qq.com

还有子窗体背景色 使用 rgba(0,0,0,0) top会有双倍高度,比如top设置50,窗体内容就会显示在距离顶部100,也就是 窗体外一个50窗体内一个50,我去报bug他跟我说不能这么用,但是也不说怎么用也是绝了
2021-10-29 10:35
4***@qq.com

4***@qq.com

回复 j***@qq.com :
朋友在uni.$emit()外面包一个setTimeout(),设置个500的延时试试
2021-03-16 16:03
hws007

hws007

一切靠猜!运气好!早点猜到
2021-02-25 04:16
初学者123

初学者123 (作者)

回复 Hedico :
还没有做 IOS打包,暂时不知道答案
2021-02-24 15:11
Hedico

Hedico

楼主有遇到iOS端打包后子窗体空白的问题吗?像是没渲染出来,本地调试正常。是不是需要在打包时进行额外的配置?
2021-02-20 19:27
旺仔牛奶

旺仔牛奶

回复 独角兽 :
子窗体宽高 flex:1 阻止冒泡 逻辑自己处理 @click.stop='close' close(e){e.stopPropagation();return;//要关闭自己写}
2020-12-30 10:58
DCloud_UNI_Anne

DCloud_UNI_Anne

[subNVue](https://uniapp.dcloud.net.cn/collocation/pages?id=app-subnvues)
2020-11-26 19:42
独角兽

独角兽

大佬 子窗体的遮罩层点击之后 子窗体会消失 这个怎么解决 遮罩层不应该能点击消失的啊 求帮助
2020-11-26 16:08
j***@qq.com

j***@qq.com

回复 初学者123 :
经过测试,在ios端正常传值,但在我的安卓上就不行,人都傻了
2020-10-23 18:54