didi / mpx

Mpx,一款具有优秀开发体验和深度性能优化的增强型跨端小程序框架

Home Page:https://mpxjs.cn

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[Bug report]optimizeRenderRules 优化导致的bug

xdev965 opened this issue · comments

问题描述
请用简洁的语言描述你遇到的bug,至少包括以下部分,如提供截图请尽量完整:

开启optimizeRenderRules 优化会导致模板中的数据绑定失效 。

环境信息描述
至少包含以下部分:

详见 mpx-demo.zip

最简复现demo
一般来说通过文字和截图的描述我们很难定位到问题,为了帮助我们快速定位问题并修复,请按照以下指南编写并上传最简复现demo:

1.安装依赖包后直接watch,进入home.mpx,aa,bb,cc 正常显示
2. 取消home.mpx页面中的第12行注释代码,bb,cc 值无法显示
3.恢复home.mpx页面中的第12行注释代码,取消第13行注释代码,aa 值无法显示
4.取消home.mpx页面中的第12,13行注释代码,aa,bb,cc 正常显示
5.注释掉vue.config.js文件中59行optimizeRenderRules优化配置,注意要清除上次的编译缓存重新运行vscode。重复1,2,3,4步骤,aa,bb,cc 正常显示


遇到这个bug的时候,有些值能显示,有些不能,十分不可思议。通过进一步观察发现不能显示的值跟判断条件有关,于是有了上面1,2,3,4步的尝试,到第4步的时候,突然回想起v2.9.0版本发布时,官网的迁移文档中关于”Render函数优化“的描述提到,是通过移除不必要的setData访问实现的,那不就跟这个bug的现象对上了么,于是通过进一步求证,确实是它引起的。

确实是render函数优化的逻辑bug,我们处理一下