Eu geralmente me vejo procurando as importações para diferentes coisas quando crio um Componente de Tema, então decidi compilar uma série delas e colocá-las aqui.
Relacionado ao Ember
| Nome | Importação | Uso |
|---|---|---|
| Component | import Component from "@glimmer/component"; |
export default class MyComponentClass extends Component {} |
| Decorador Action | import { action } from "@ember/object"; |
@action |
| Decorador Tracked | import { tracked } from "@glimmer/tracking"; |
@tracked myTrackedVar |
| Decorador Service | import { service } from "@ember/service"; |
@service modal |
| (Template Glimmer) on | import { on } from "@ember/modifier"; |
<p {{on "click" this.someAction}}>Clique em mim!</p>[1] |
Relacionado ao Discourse
| Nome | Importação | Uso |
|---|---|---|
| apiInitializer | import { apiInitializer } from "discourse/lib/api"; |
export default apiInitializer((api) => {}) |
| withPluginApi | import { withPluginApi } from "discourse/lib/plugin-api"; |
withPluginApi((api) => {})[2][3] |
| ConditionalLoadingSpinner | import ConditionalLoadingSpinner from "discourse/components/conditional-loading-spinner"; |
<ConditionalLoadingSpinner @condition={{this.loading}} /> |
| DButton | import DButton from "discourse/ui-kit/d-button"; |
<DButton @icon="..." @action={{this.someAction}} /> |
| ajax | import { ajax } from "discourse/lib/ajax"; |
ajax("/path/here")[4] |
| i18n | import { i18n } from "discourse-i18n"; |
{{i18n "locale_key"}}[5] |
| (Template Glimmer) Igual, não igual, maior que, maior ou igual, menor que, menor ou igual, ou, não, e, tem, inclui | import { eq, and, ... } from "truth-helpers"; |
{{#if (eq this.something this.something2)}}[6] |
Você pode vê-los combinados, como variáveis rastreadas como condição para ConditionalLoadingSpinner, ou ações para DButton, etc.
Espero que isso ajude!
Eu não sou um profissional, então, se você notar alguma imprecisão, por favor, ajude a corrigir ou aponte isso, obrigado
.
Você também pode usar eventos como
input,mousedown,focusin, etc ↩︎Veja discourse/app/assets/javascripts/discourse/app/instance-initializers/enable-emoji.js at 99ace1be120b928f6c694d0118959d745cc4bdbe · discourse/discourse · GitHub ↩︎
Acho que é recomendado usar
apiInitializerem vez disso; acho que esta é a versão antiga? ↩︎Funciona de forma semelhante a
fetch(). Coloque isso em uma funçãoasync, com a palavra-chaveawait. ↩︎Se você estiver obtendo o locale do repositório principal, por exemplo, user.summary.stats ↩︎
Coisas como
andeorpodem ter mais de 2 argumentos ↩︎