0

我目前正在浏览Ember 2.13的getting started指南。Ember JS入门指南 - 屏幕闪烁

我已经加入了添加我的第一条路线的步骤:/scientists路线。我很担心,因为当我访问该网址时,屏幕闪烁,我没有想到应该会发生这样的基本SPA。

我添加了一个链接here,显示更改URL时的闪烁。

有什么我误解了在Chrome中重新绘制?因为在Safari中它似乎工作正常。但我倾向于认为,这是因为一些Safari优化,而不是Ember在Safari中的工作,而不是Chrome。

我正在使用ember serve命令。它还表示watchman没有安装,但因为这只是为了发现文件更改,我认为它不会影响到这一点。

回答

3

它闪烁的原因是因为如果您手动更改URL并按Enter键,导致页面重新加载(导致Ember应用程序重新初始化)。要在路线之间无缝过渡(没有闪烁/页面重新加载),您需要使用Ember的帮助程序{{link-to}}。与手动更改URL不同,{{link-to}}助手不会导致页面重新加载并转换到新路由。

controllerrouter上下文中还有其他方法。主要是Route#transitionToController#transitionToRoute

在Ember应用程序中路由时,您应始终使用上述方法之一。确保你不使用<a>标签或更改window.location。这些方法可以正常工作,但是它会在重新初始化和初始化Ember应用程序时引起那种明显的闪烁。

事实上,watchman是一个可选升级,以提高检测文件更改所花费的时间/可靠性。它不应该影响你所描述的闪烁。

+0

非常感谢您的帮助。非常感激。 – qarthandso