小程序
小游戏
企业微信
微信支付
扫描小程序码分享
index中包含多个自定义组件A、B、C,他们共同引用了一个behaviors "common",common中含有一个config字段,那么在A中修改A的config字段会导致BC两个组件的config字段被修改?
这是BUG还是设计?
2 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
设计如此。不像常规继承机制,这里的 data 是“共享”的。我们尚在考虑是否要给 behaviors 增加 privateData 和 provateMethods 。如有意见或建议,欢迎回帖讨论。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
我们目前所希望实现的功能是通过wxif去加载某一个Component(类似动态选择渲染模板),并且使用behavios为不同的Component提供公用方法,由于behavios的data之外的属性无法被Component覆盖,所以这些方法所设计到的数据只能存在data里面(即使不需要被渲染),如果这些公用数据会被所有引用者共同维护,为了避免被覆盖。每个Component只能使用带前缀的值,一来增加了渲染量,二来使得behavios的公用方法无法使用确定的字段做为数据源。
我现在想到的fix方式是在compoent初始化时再去用自己的私有属性去覆盖data.config对应部分,但这也仅仅能处理只有一个Component展示的情况。
也就是说现有的设计中Component无法支撑通过wxif动态加载的逻辑设计,而只能单独地出现在某个页面中,请问现在小程序内实现这种设计有没有比较好的实践方式?
抱歉。之前理解错了你的问题。
按设计预期来看,不同组件实例引用同一个 behavior , behavior 里面的 data 不在两个组件实例间共享(但 behavior 会和引用它的组件实例共享)。
代码片段已收到。我们调查一下。
查到是基础库里面有个拼 behavior 字段的 bug 。之后我们会尝试修复。
界面无关的数据在 created 的时候往 this 上面挂比较好。
好的谢谢
再报告一个问题,在上述情况下如果多个Component的wxss import了同一个common.wxss也会导致各Component内样式和keyframe的冲突
麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
直接开发工具就行,不用机型微信
https://developers.weixin.qq.com/s/pOik4gmz7s8M
修改这?
即在各组件中定义这个config字段,会导致所有组件的config混在一起。对于同名字段(例子中的id)甚至无法保证是本文件config中设置的。这样的结果使得组件不断增多的情况下会对旧有的组件产生不可预测的影响。
请问是否能给个回应,如果是我使用方法问题(我希望每个组件通过behavios的值做为默认数据初始化自己)是否可以指出来我好修改,如果是BUG或设计如此我好另想办法。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
设计如此。不像常规继承机制,这里的 data 是“共享”的。我们尚在考虑是否要给 behaviors 增加 privateData 和 provateMethods 。如有意见或建议,欢迎回帖讨论。
我们目前所希望实现的功能是通过wxif去加载某一个Component(类似动态选择渲染模板),并且使用behavios为不同的Component提供公用方法,由于behavios的data之外的属性无法被Component覆盖,所以这些方法所设计到的数据只能存在data里面(即使不需要被渲染),如果这些公用数据会被所有引用者共同维护,为了避免被覆盖。每个Component只能使用带前缀的值,一来增加了渲染量,二来使得behavios的公用方法无法使用确定的字段做为数据源。
我现在想到的fix方式是在compoent初始化时再去用自己的私有属性去覆盖data.config对应部分,但这也仅仅能处理只有一个Component展示的情况。
也就是说现有的设计中Component无法支撑通过wxif动态加载的逻辑设计,而只能单独地出现在某个页面中,请问现在小程序内实现这种设计有没有比较好的实践方式?
抱歉。之前理解错了你的问题。
按设计预期来看,不同组件实例引用同一个 behavior , behavior 里面的 data 不在两个组件实例间共享(但 behavior 会和引用它的组件实例共享)。
代码片段已收到。我们调查一下。
查到是基础库里面有个拼 behavior 字段的 bug 。之后我们会尝试修复。
界面无关的数据在 created 的时候往 this 上面挂比较好。
好的谢谢
再报告一个问题,在上述情况下如果多个Component的wxss import了同一个common.wxss也会导致各Component内样式和keyframe的冲突
麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
直接开发工具就行,不用机型微信
https://developers.weixin.qq.com/s/pOik4gmz7s8M
修改这?
即在各组件中定义这个config字段,会导致所有组件的config混在一起。对于同名字段(例子中的id)甚至无法保证是本文件config中设置的。这样的结果使得组件不断增多的情况下会对旧有的组件产生不可预测的影响。
请问是否能给个回应,如果是我使用方法问题(我希望每个组件通过behavios的值做为默认数据初始化自己)是否可以指出来我好修改,如果是BUG或设计如此我好另想办法。