简介
Ember-later-shim是一个EmberJS插件,它使得使用later.js这个定时任务库在EmberJS中变得更加简单和方便。
开始
首先,使用ember-cli创建一个新应用程序:
ember new my-app cd my-app
安装Ember-later-shim:
ember install ember-later-shim
ember-later-shim 默认包含了 later.js 的所有功能,因此无需手动安装后者。该插件会自动把 later.js 的所有 API 注册到 Ember 的服务容器中。
接下来,您将需要添加一个计划任务以在页面上上展示数字:
在 component.js 里添加以下代码:
-- -------------------- ---- ------- ------ --------- ---- ------------------- ------ - ----- ------- - ---- ------------------- ------ ------- ------------------ ------ -- -------- ------------- - -- - ----- ------ - -------------------------------- ----- -------------- - ------------- ---
上述代码中,countUp 函数会在组件初始化之后启动一个无限的循环。每秒钟,计数器都会递增。
现在,在你的应用组件移动到路由组件,使计数器在 route.js 中变得真正的可见:
import Route from '@ember/routing/route'; export default Route.extend({ model() { return { title: 'index' }; } });
和 template.hbs
<h1>{{model.title}}</h1> <p>Count: {{my-component.count}}</p>
最后,您需要在 route.js 中添加'init'钩子,以便可以启动计时器组件中的任务:
-- -------------------- ---- ------- ------ ----- ---- ----------------------- ------ - ----- - ---- -------- ------ - --- - ---- ----------------- ------ ------- -------------- ------- - ------ - ------ ------- -- -- ------ - -------------------------- -------- -- - ------ -- - --- ---------- - ---------------------------------- ------------------------------------------------- --- -- ----------------------- - ---------- - ---
先安装npm包 later: npm install later --save-dev
然后,您将在 route.js 顶部导入两个额外的依赖: later 和 @ember/runloop。 后者是必须的,因为无论何时,此代码片段都将运行在 Ember 的 runloop (即应用程序的主线程)中,以避免意外的错误。
在 init 函数中,您将使用 later 来启动自定义循环,每秒钟自动执行一次。每次循环,run 将调用您的计数器,以便组件在页面上显示正确的当前数。
到此为止,我们的计时器就实现好了。
结论
以上是一个简单的使用 Ember-later-shim 的教程。我们已经学习了如何使用计划任务库将一个页面的数字定时递增。最重要的是,您了解了如何将后台JavaScript API与 EmberJS应用程序无缝集成的有用技巧,以及如何在应用程序的主线程中运行它们,以避免错误。
我希望这篇文章对您有所帮助,让您学到了有关Ember-later-shim的详细信息。现在,您可以在自己的应用程序中使用此插件,开始更轻松地使用计时器和任务。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066e19a563576b7b1ecbd6