原因分析
mvvm架构和Mini架构都是遵循数据层渲染模板层思想
1.真实DOM是由虚拟DOM构建完成然后渲染输出的真实DOM。
2.在mini架构和mvvm架构中,要触发页面对象的数据属性所对应的虚拟DOM或子对象的接收参数的重新渲染必须通过触发这个对象的es5属性监听器set属性
3.通过set属性的监听函数调用虚拟DOM的构建函数才能完成模板层的重新渲染。
由于微信小程序的官方坑为观察者模式调用setData时不能触发属性的set,所以导致模板层不能重新渲染
如何解决问题
将数据处理逻辑由Page组件处理完成,然后由page组件对象调用setData函数对Component对象的构造参数进行重新传参,从而触发Component对象的模板层的重新渲染