The Codest
  • O nás
  • Služby
    • Vývoj softwaru
      • Vývoj frontendů
      • Vývoj backendu
    • Staff Augmentation
      • Vývojáři frontendů
      • Vývojáři backendu
      • Datoví inženýři
      • Cloudoví inženýři
      • Inženýři QA
      • Další
    • To Advisory
      • Audit a poradenství
  • Odvětví
    • Fintech a bankovnictví
    • E-commerce
    • Adtech
    • Healthtech
    • Výroba
    • Logistika
    • Automobilový průmysl
    • IOT
  • Hodnota za
    • CEO
    • CTO
    • Manažer dodávek
  • Náš tým
  • Case Studies
  • Vědět jak
    • Blog
    • Setkání
    • Webové semináře
    • Zdroje
Kariéra Spojte se s námi
  • O nás
  • Služby
    • Vývoj softwaru
      • Vývoj frontendů
      • Vývoj backendu
    • Staff Augmentation
      • Vývojáři frontendů
      • Vývojáři backendu
      • Datoví inženýři
      • Cloudoví inženýři
      • Inženýři QA
      • Další
    • To Advisory
      • Audit a poradenství
  • Hodnota za
    • CEO
    • CTO
    • Manažer dodávek
  • Náš tým
  • Case Studies
  • Vědět jak
    • Blog
    • Setkání
    • Webové semináře
    • Zdroje
Kariéra Spojte se s námi
Šipka zpět ZPĚT
2020-05-13
Vývoj softwaru

Stimulus.js: Alternativa JS frameworku pro Rails aplikace

The Codest

Pawel Muszynski

Software Engineer

Jak říkají jeho tvůrci, Stimulus je framework JavaScript se skromnými ambicemi, který se nesnaží převzít celý váš frontend, ale rozšířit HTML o dostatečné chování, aby zazářil.

Vím, co si myslíte... Další JavaScript rámec? Už jich je tolik! Máte pravdu, ale tento mě zaujal, protože ho vytvořil Basecamp. Tuto společnost pravděpodobně znáte, jsou to tvůrci. Ruby na adrese Rails. Vytvořili také Turbolinky, a zmiňuji to proto, že Stimulus se s ním skvěle doplňuje. Takže možná stojí za to Stimulus vyzkoušet?

Jak to funguje?

Stimulus funguje tak, že sleduje stránku, čeká na data-controller se zobrazí atribut. Adresa data-controller hodnota připojuje a odpojuje řídicí jednotky Stimulus. Předpoklad je jednoduchý: stejně jako je třída spojením mezi HTML a CSS, data-controller je mostem z HTML do JavaScript. Stimulus také přidává data-action atribut, který popisuje, jak mají události na stránce spouštět metody kontroléru, a atribut data-target atribut, který vám poskytne rukojeť pro vyhledávání prvků v oboru kontroléru.

Snadná instalace

Pokud vaše aplikace Rails používá gem webpacker, můžete Stimulus nainstalovat jedním jednoduchým příkazem, protože gem webpacker poskytuje úlohu pro instalaci Stimulu. Stačí spustit následující příkaz v kořenovém adresáři Rails:

rails webpacker:install:stimulus
To přidává stimul k package.json a vytvoří následující dva soubory: app/javascript/controllers/index.js:

import { Application } z "stimulus"
import { definitionsFromContext } z "stimulus/webpack-helpers"

const application = Application.start()
const context = require.context("controllers", true, /_controller.js$/)
application.load(definitionsFromContext(context))

Vidíte, že je zavolán pomocný soubor require.context balíku Webpack. Výsledný kontext pak předal metodě Application#load. To znamená, že naše aplikace hledá soubory s názvem[identifier]_controller.js v app/javascript/controllers/ adresář, kde identifikátor odpovídá identifikátoru datového kontroléru ve vašem HTML. Přesně na toto místo bychom měli umístit řadiče Stimulus.
Aplikace/javascript/controllers/hello_controller.js je také generován. Toto je pouze příklad ovladače, se kterým si můžeme hrát.

Základní použití

Dobře, takže máme hello_controller.js soubor vytvořený pomocí následujícího kód:

import { Controller } z "stimulus"

export default class extends Controller {
static targets = ["output"]
connect() {
this.outputTarget.textContent = 'Hello, Stimulus!'
}
}

Ale jak víte, pokud si HTML a JavaScript nespojíme, neuvidíme žádné účinky. Přidejme do zobrazení HTML nějaký kód. Ten můžete umístit, kdykoli budete chtít:

<div data-controller="hello">
<p data-target="hello.output">&nbsp;</p>
</div>

A víte co? To je všechno! Pokud stránku znovu načtete a na stránce se zobrazí nápis "Hello, Stimulus!", znamená to, že připojení funguje správně. Jednoduché, že?
Dobře, ale jedná se pouze o prosté zobrazení textu. Mohli bychom mít nějakou akci? Ano, můžeme! Jak jsem se již zmínil, existuje také data-action přívlastek. Změníme tedy naše zobrazení HTML:

<div data-controller="hello">
<p><input type="number" data-target="hello.days"><br><button data-action="click->hello#calculate">Výpočet</button></p>
</div>

A regulátor stimulačních opatření app/javascript/controllers/hello_controller.js:

import { Controller } z "stimulus"

export default class extends Controller {
static targets = ["output", "days"]
connect() {
this.outputTarget.textContent = 'Jak dlouho jste v karanténě?'
}
calculate() {
const element = this.daysTarget
const days = element.value
const lockdownDays = 14
let daysLeft = lockdownDays - days

if (daysLeft < 1) {
  alert('Jste volní!')
}
else {
  alert(`Počet dní, které musíte strávit v karanténě: ${daysLeft}`)
}

}
}

Zde máme velmi jednoduchou aplikaci, která vypočítá, jak dlouho musíme zůstat v karanténě. To se nám podařilo pomocí atributu data-action v HTML.
V kódu JavaScript můžete vidět, že jsme do seznamu cílů přidali také "dny". Když to uděláme, Stimulus automaticky vytvoří položku this.daysTarget vlastnost, která vrací první odpovídající cílový prvek.

Co ještě potřebujete vědět?

Zpětná volání

Pravděpodobně jste si všimli, že connect() v obou příkladech. Tato metoda je určena pro vestavěné zpětné volání. Měli byste je všechny znát a znát jejich životní cyklus, takže je zde najdete:
inicializovat: jednou, při první instanci kontroléru,
připojit: kdykoli je ovladač připojen k DOM,
odpojení: kdykoli je ovladač odpojen od DOM.

Deskriptor akce

Na stránkách data-action hodnota click->hello#calculate se nazývá deskriptor akce. Tento deskriptor říká, že:

  • klikněte na je název události,
  • Dobrý den, je identifikátor řadiče,
  • vypočítat je název metody.

Cíle

Stejně jako u akcí má Stimulus deskriptor cíle. Na adrese . hello.days deskriptor říká, že: Dobrý den, je identifikátor řadiče,
dny je název cíle.

V předchozím příkladu jsem uvedl, že Stimulus vytváří. this.daysTarget vlastnost, když je v seznamu cílů položka "days". Musíte také vědět, že lze vytvořit více vlastností. V souvislosti s příkladem můžete mít:

this.daysTarget který vyhodnotí až první cíl v oboru kontroléru. Pokud žádný cíl neexistuje, vlastnost označí chybu,
this.daysTargets vyhodnotí až pole všech zdrojových cílů v oboru kontroléru,
this.hasDaysTarget vrací true, pokud existuje cíl, nebo false, pokud neexistuje.

Jak vidíte, Stimulus je jednoduchý a lze jej snadno přidat do aplikace. Získává si určitou popularitu v oblasti RoR komunita a já se tomu nedivím. Jako vývojář Ruby si práci se Stimulusem opravdu užívám. Tak co si ho vyzkoušet?

Přečtěte si více:

  • Vývoj webových aplikací: Proč se vyplatí zvolit technologii Ruby on Rails?
  • Je čas na novou realitu. Před měsícem začala éra práce na dálku
  • 5 důvodů, proč najdete kvalifikované vývojáře Ruby v Polsku

Související články

Ilustrace zdravotnické aplikace pro chytré telefony s ikonou srdce a rostoucím zdravotním grafem, označená logem The Codest, která představuje digitální zdraví a řešení HealthTech.
Vývoj softwaru

Softwarové vybavení pro zdravotnictví: a případy použití

Nástroje, na které se dnes zdravotnické organizace spoléhají, se v ničem nepodobají papírovým kartám z doby před desítkami let. zdravotnický software dnes podporuje zdravotnické systémy, péči o pacienty a moderní poskytování zdravotní péče v klinických a...

NEJKRÁSNĚJŠÍ
Abstraktní ilustrace klesajícího sloupcového grafu se stoupající šipkou a zlatou mincí symbolizující efektivitu nákladů nebo úspory. V levém horním rohu se zobrazuje logo The Codest se sloganem "In Code We Trust" na světle šedém pozadí.
Vývoj softwaru

Jak rozšířit tým vývojářů bez ztráty kvality produktu

Zvětšujete svůj vývojový tým? Zjistěte, jak růst, aniž byste museli obětovat kvalitu produktu. Tento průvodce se zabývá příznaky, že je čas na škálování, strukturou týmu, najímáním zaměstnanců, vedením a nástroji - a také tím, jak může The Codest...

NEJKRÁSNĚJŠÍ
Vývoj softwaru

Vytváření webových aplikací odolných vůči budoucnosti: postřehy týmu odborníků The Codest

Zjistěte, jak společnost The Codest vyniká při vytváření škálovatelných, interaktivních webových aplikací pomocí nejmodernějších technologií, které poskytují bezproblémové uživatelské prostředí na všech platformách. Zjistěte, jak naše odborné znalosti podporují digitální transformaci a obchodní...

NEJKRÁSNĚJŠÍ
Vývoj softwaru

10 nejlepších lotyšských společností zabývajících se vývojem softwaru

V našem nejnovějším článku se dozvíte o nejlepších lotyšských společnostech zabývajících se vývojem softwaru a jejich inovativních řešeních. Zjistěte, jak mohou tito technologičtí lídři pomoci pozvednout vaše podnikání.

thecodest
Podniková a škálovací řešení

Základy vývoje softwaru v jazyce Java: A Guide to Outsourcing Successfully

Prozkoumejte tuto základní příručku o úspěšném vývoji softwaru outsourcing Java, abyste zvýšili efektivitu, získali přístup k odborným znalostem a dosáhli úspěchu projektu s The Codest.

thecodest

Přihlaste se k odběru naší znalostní databáze a získejte aktuální informace o odborných znalostech z oblasti IT.

    O nás

    The Codest - Mezinárodní společnost zabývající se vývojem softwaru s technologickými centry v Polsku.

    Spojené království - ústředí

    • Kancelář 303B, 182-184 High Street North E6 2JA
      Londýn, Anglie

    Polsko - Místní technologická centra

    • Kancelářský park Fabryczna, Aleja
      Pokoju 18, 31-564 Krakov
    • Brain Embassy, Konstruktorska
      11, 02-673 Varšava, Polsko

      The Codest

    • Home
    • O nás
    • Služby
    • Case Studies
    • Vědět jak
    • Kariéra
    • Slovník

      Služby

    • To Advisory
    • Vývoj softwaru
    • Vývoj backendu
    • Vývoj frontendů
    • Staff Augmentation
    • Vývojáři backendu
    • Cloudoví inženýři
    • Datoví inženýři
    • Další
    • Inženýři QA

      Zdroje

    • Fakta a mýty o spolupráci s externím partnerem pro vývoj softwaru
    • Z USA do Evropy: Proč se americké startupy rozhodly přesídlit do Evropy?
    • Srovnání technických vývojových center v zahraničí: Tech Offshore Evropa (Polsko), ASEAN (Filipíny), Eurasie (Turecko)
    • Jaké jsou hlavní výzvy CTO a CIO?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Copyright © 2026 by The Codest. Všechna práva vyhrazena.

    cs_CZCzech
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese es_ESSpanish nl_NLDutch etEstonian elGreek pt_PTPortuguese cs_CZCzech