computed 文档上有专门的 Chaining API 章节,请参考: https://github.com/wechat-miniprogram/computed/?tab=readme-ov-file#glass-easel-chaining-api-%E6%94%AF%E6%8C%81
一万个拒绝skyline的理由之:Component()链式调用无法使用Computed?前情提要: https://developers.weixin.qq.com/community/minihome/doc/0000c0a90303f874e633df39861000 首先如上,是Component()链式调用没有类型提示,完全不知道哪些是支持的,哪些又不支持; 然后如题,链式调用中使用Computed的behavior,会报错如下: import { behavior as computedBehavior } from 'miniprogram-computed' Component() .behavior(computedBehavior) .data(() => ({ windowInfo: wx.getWindowInfo(), })) .pageLifetime('resize', function () { this.setData({ windowInfo: wx.getWindowInfo(), }) }) .register(); [图片] 俺寻思官方文档说可以这样写的吧: [图片] 还是说事实上Computed这个项目已经被官方放弃更新了?压灭咯,不要放弃啊官方酱。
04-30抱歉有误。应为: <view wx:if="{{view == 'WEBVIEW'}}"> WEBVIEW </view> <view wx:elif="{{view == 'APP'}}"> APP </view> <view wx:elif="{{view == 'MINA'}}"> MINA </view> <view wx:else> UNKNOWN </view>
教程文档中wx:else示例是否妥当?/地址: https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxml/ 在 条件渲染这一部分 为什么else还有条件判断? <!--wxml--> <view wx:if="{{view == 'WEBVIEW'}}"> WEBVIEW </view> <view wx:elif="{{view == 'APP'}}"> APP </view> <view wx:else="{{view == 'MINA'}}"> MINA </view> 为什么在else这里还有条件判断 这合理吗? 如果这么设计, 那么else和elif有什么区别呢? else不应是兜底的吗 就相当于js中的switch中的default啊 这个示例代码中如果都没有命中呢? 出现这样的情况算什么?
04-01支持的。但请注意, relations 只作用于引用该 behavior 的组件,路径也按组件计算,因而一般情况下不要使用在 behaviors 中使用相对路径指定目标。 如有疑问,请附上具体用例。
Behavior不支持relations配置,建议从文档中移除,不要误导开发者。https://developers.weixin.qq.com/miniprogram/dev/reference/api/Behavior.html
2024-08-30反馈已收到。我们仔细分析下。
自定义组件没有被销毁,导致存在内存泄露的情况?Demo 地址 问题描述 自定义组件实例没有被销毁,如果给组件的 properties 传递了大量数据(Demo 中是 500k),将快速占用内存。 复现步骤 1.打开 Demo,然后打开开发者工具的 Memory 面板,录取内存快照,关注构造函数:l。 [图片] 2.点击 Click 按钮 10 次(相当于渲染、隐藏自定义组件 foo 5 次),然后点击强制垃圾回收按钮,接着再次录取内存快照。 3.选中快照 Snapshot2,filter 设置为:Objects allocated between Snapshot1 and Snapshot2,并筛选构造函数:l。这时可以观察到内存占用大幅上升,其中新增的 5 个对象 l 引用了 32% 的内存。 [图片] 4.展开其中一个 l 对象,可以观察到其 __methodCaller 属性引用的是一个自定义组件实例,从而判断 l 对象跟自定义组件有关。再观察 l 对象中内存占比较大的字段分别是 __vtObj 与 __innerData,它们都分别引用着父组件传入的 json 属性(500k 大数据)。( l 对象的 Retainers 是一些循环引用或内部代码,很难再往下追查) [图片] 5.右键点击 l 对象,选择 Store as a global variable,把 l 对象放到控制台进行观察,发现 __vtObj 与 __innerData 属性引用的是独立的 json 对象。 [图片] 6.综上,推测自定义组件实例没有被销毁,如果给自定义组件的 properties 传递了大型数据,会导致内存泄露问题更明显。 环境信息 基础库:2.32.2复现环境:微信开发者工具(真机调试不支持堆栈 snapshot)
2023-07-04光从描述不能确定具体是什么问题。 不过这里最容易遇到的问题是忘了发布插件所有者小程序。看看是不是忘了?
插件支付?在本地微信开发者工具中开发,或者直接用手机真机调试都可以调起支付,也都是可以找到miniprogram/functional-pages/request-payment.js(图一) 小程序的appid:wxd5246561b976e50d,也配置了(图二) 同时在app.json中配置了"functionalPages": { "independent": true }(图二) 本地也可以正常的直接调起支付(图三) 但是我讲插件发布上线之后,在小程序的体验版本中调用线上的插件支付,却报错找不到/functional-pages/request-payment.js,报错内容如(图四) [图片] [图片] [图片] [图片] {errMsg: "requestPluginPayment:fail callMiniProgramFunction:fail File not found"} 有没哪位大神能帮忙解决一下
2023-03-02感谢反馈。 bug 已确认,我们仔细查查看问题出在哪。
动态设置组件 components slot name 值,会导致已有的 slot 重复刷新渲染【BUG 描述】 使用 component slot 时,动态更新/设置 components 页面 slot 的 name 时,会导致已存在的 slot 重新刷新(目前复现的表现为存在滚动距离的 scroll-view 会返回顶部),无法做到局部更新。 【复现】 [图片] 点击代码片段中的“展示 slot_1”按钮;观察 slot_0 显示内容,表现为原本已存在滚动距离的 scroll-view 会返回顶部。【描述】 点击“展示 slot_1”按钮后,会调用 slotBug 组件内的 showSecondSlot(),此时会将 slotBug 中 data 的 【slot_1: ''】 设置为 【slot_1: 'second'】,wxml 中 <slot name="{{slot_1}}"></slot> 会同步由 '' 更新为 'second',此时会导致已存在滚动的 slot_0 scroll-view 返回顶部。
2022-12-09感谢反馈。 bug 已经确认。 但 iOS 系统的 bug 我们也没法处理,建议换种方式实现。( iOS 关于 transform 与其他部分 CSS 样式组合使用时的问题比较多,建议尽量绕开。)
animation中设置transform:rotate旋转超过180度后没有动画(ios)代码片段(注意使用iphoneX或者iphoneXR真机调试):https://developers.weixin.qq.com/s/wsPLPDmI7nDP 附上部分代码: @keyframes test { 0%{ transform: rotate(0); opacity: 0; } 100%{ transform:rotate(190deg); opacity: 1; } } 以上代码使用iPhoneX真机调试只有opacity动画是正常的,transform不会旋转。当去掉opacity后才能正常动画。 使用的iPhoneX系统为16.0、微信版本为8.0.29、基础库版本2.27.2
2022-11-10没有 parentUpdateProcessId 说明不是子更新。 如果想要得到一个子更新的 res 对象范例,可以写两个组件:父组件修改子组件的一个 property ,子组件在对应的 property observer 中直接调用 this.setData 。
setUpdatePerformanceListener方法子更新如何触发?setUpdatePerformanceListener方法中res回调没有parentUpdateProcessId参数,parentUpdateProcessId参数怎么样才能获取到? ?[图片] [图片]
2022-11-10由动画影响的样式始终优先于 setData 设置的样式。 这个设计主要是为了解决使用两种方式进行更新时产生的竞争。如果样式由动画影响,那只应使用动画来改变这些样式。
使用animation动画修改translateX之后style该属性失效程序片段:https://developers.weixin.qq.com/s/Eh46lumI76CC 复现步骤: 1、小幅度滑动图片(小于100px) 2、松开手指 3、图片自动回弹 4、回弹之后,再次拖动图片,修改translateX,图片不再跟随手指滑动
2022-09-23当分配给某个页面的显示区域尺寸发生变化的时候会触发这个页面的 onResize 。尺寸变化事件源于操作系统,在不同系统上有不同的表现是正常的。 wx.onWindowResize 是在小程序运行期间、只要显示区域尺寸有变化就会被触发的事件,不针对特定的页面。因而通过这个事件往往很难准确区分是哪个页面发生了尺寸变化,甚至在一些特殊情况下,是找不到哪个小程序页面发生了尺寸变化的(即触发 wx.onWindowResize 时不一定有 onResize 被触发)。
2022-09-14