该应用程序部署在此处:memoryapp.meteor.com
源代码可在此处的 git 存储库中找到:https ://github.com/SnappyCroissant/memoryapp
重置应用程序运行
Cards.update({}, {$set: {state: 'play'}}, {multi: true})
从控制台。
我知道让客户端访问这样的集合是很糟糕的,该应用程序还远未准备好生产我只是通过 Meteor 找到自己的方式。
DOM
目前,每当在 Cards 中运行任何更新时,除了那些我称之为持久性的元素之外,整个重绘都会重新绘制。据我所知,元素应该只在更新时重绘,还是我误解了反应性的工作方式?
脚本中唯一真正发生的动态变化是'state'
卡片中对象的属性正在发生变化。然而它会重绘每个属性和每个 DOM 元素,除非明确声明不这样做。
是因为它们都在一个数组中传递给模板吗?如果是这样,最好的替代方法是什么。
这个结构有点大杂烩,因为它是一种学习体验,这个问题的所有重要部分(据我所知)都存在于client/memory.js
和server/model.js