初学者123
初学者123
  • 发布:2020-08-23 03:18
  • 更新:2023-10-24 14:05
  • 阅读:4346

subNVue子窗体开发踩坑记录

分类:nvue

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

9 关注 分享
9***@qq.com 1***@qq.com 3***@qq.com 8087 夏流 jimleel r***@163.com z***@qq.com t***@163.com

要回复文章请先登录注册

独角兽

独角兽

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

j***@qq.com

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

初学者123 (作者)

回复 j***@qq.com :
页面渲染问题,参见本文第4点。不能用 this,是无效的!
2020-10-22 23:07
j***@qq.com

j***@qq.com

我也是,使用subnvue做一个包含video的轮播图,用了大半天才把样式页面什么的给做完,结果传值总是随机性的无法渲染页面,一般第一次进是可以的,然后再进入页面就有很大概率轮播图不显示,但是console.log数据是正常的,使用你const代理以下this还是不能解决问题,请问你有什么好的解决办法嘛关于这个页面渲染
2020-10-19 15:27
初学者123

初学者123 (作者)

回复 1***@qq.com :
可能是传值出现错误,一般与语法有关
2020-08-25 15:16
1***@qq.com

1***@qq.com

回复 初学者123 :
啊啊啊啊啊啊我用了后打包出bug
Module Error (from ./node_modules/@dcloudio/vue-cli-plugin-hbuilderx/packages/webpack-uni-nvue-loader/lib/style.js):
16:56:30.499 (Emitted value instead of an instance of Error) Error: undefined:4425:2: missing '}',Error: undefined:4442:3: missing '}'
请问您知道是什么原因吗
2020-08-24 17:01
初学者123

初学者123 (作者)

回复 1***@qq.com :
不是必须。我在子窗体的template中,使用的是<view>和<text>标签,所以使用的是uniapp编译模式,完全没问题
2020-08-24 12:49
1***@qq.com

1***@qq.com

使用subnvue后打包的编译是不是必须得"nvueCompiler" : "weex",
2020-08-24 09:22
神的尾巴

神的尾巴

社区需要人多分享,填坑的人多了,路就会顺畅很多,有些地方确实描述的不太清楚,需要实践才能发现其中的坑和最佳解决方案,最好是文档上面有demo。
另外官方文档要是能链到用户分享文章会好很多,可以看下具体的实践思路。
2020-08-23 14:19
DCMarvel

DCMarvel

官方文档一般人可看不懂,尤其是Html5+的文档,比屎都难啃
2020-08-23 10:33