The Codest
  • Sobre nós
  • Serviços
    • Desenvolvimento de software
      • Desenvolvimento de front-end
      • Desenvolvimento backend
    • Staff Augmentation
      • Programadores Frontend
      • Programadores de back-end
      • Engenheiros de dados
      • Engenheiros de nuvem
      • Engenheiros de GQ
      • Outros
    • Aconselhamento
      • Auditoria e consultoria
  • Indústrias
    • Fintech e Banca
    • E-commerce
    • Adtech
    • Tecnologia da saúde
    • Fabrico
    • Logística
    • Automóvel
    • IOT
  • Valor para
    • CEO
    • CTO
    • Gestor de entregas
  • A nossa equipa
  • Case Studies
  • Saber como
    • Blogue
    • Encontros
    • Webinars
    • Recursos
Carreiras Entrar em contacto
  • Sobre nós
  • Serviços
    • Desenvolvimento de software
      • Desenvolvimento de front-end
      • Desenvolvimento backend
    • Staff Augmentation
      • Programadores Frontend
      • Programadores de back-end
      • Engenheiros de dados
      • Engenheiros de nuvem
      • Engenheiros de GQ
      • Outros
    • Aconselhamento
      • Auditoria e consultoria
  • Valor para
    • CEO
    • CTO
    • Gestor de entregas
  • A nossa equipa
  • Case Studies
  • Saber como
    • Blogue
    • Encontros
    • Webinars
    • Recursos
Carreiras Entrar em contacto
Seta para trás VOLTAR
2020-05-13
Desenvolvimento de software

Stimulus.js: Uma alternativa de framework JS para aplicações Rails

The Codest

Pawel Muszynski

Software Engineer

Como os seus criadores dizem, o Stimulus é uma estrutura JavaScript com ambições modestas, que não procura dominar todo o seu frontend, mas sim aumentar o HTML com apenas o comportamento suficiente para o fazer brilhar.

Eu sei o que estão a pensar... Outro JavaScript quadro? Já existem tantas! Tem razão, mas esta chamou-me a atenção por ter sido criada por Acampamento de base. Provavelmente conhece esta empresa, são os criadores de Rubi sobre Carris. Eles também criaram Turbolinks, e menciono isto porque o Stimulus combina lindamente com ele. Então, talvez valha a pena experimentar o Stimulus?

Como é que funciona?

O Stimulus funciona através da monitorização da página, aguardando que o controlador de dados para aparecer. O atributo controlador de dados liga e desliga os controladores Stimulus. A premissa é simples: tal como a classe é uma ligação entre HTML e CSS, controlador de dados é uma ponte do HTML para o JavaScript. O Stimulus também adiciona a função ação de dados que descreve como os eventos na página devem acionar os métodos do controlador, e o atributo alvo de dados que lhe dá uma forma de encontrar elementos no âmbito do controlador.

Instalação fácil

Se seu aplicativo Rails estiver usando uma gem do webpacker, você pode instalar o Stimulus com um simples comando, pois a gem do webpacker fornece uma tarefa para instalar o Stimulus. Basta executar o seguinte comando no diretório raiz do Rails:

rails webpacker:install:stimulus
Isto acrescenta Estímulo a package.json e cria os dois ficheiros seguintes: app/javascript/controladores/index.js:

importar { Application } from "stimulus" (Aplicação } de "stimulus")
importar { definitionsFromContext } de "stimulus/webpack-helpers"

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

Você pode ver que o auxiliar require.context do webpack é chamado. Ele então passou o contexto resultante para o método Application#load. Isso significa que nossa aplicação está procurando por arquivos chamados[identificador]_controlador.js no app/javascript/controladores/ onde o identificador corresponde ao identificador do controlador de dados do controlador no seu HTML. Este é exatamente o local onde devemos colocar os controladores Stimulus.
A aplicação/javascript/controladores/hello_controller.js também é gerado. Este é apenas um exemplo de um controlador com o qual podemos brincar.

Utilização básica

Ok, então temos o hello_controller.js ficheiro criado com o seguinte código:

importar { Controller } de "stimulus"

export default class extends Controller {
objectivos estáticos = ["output"]
connect() {
this.outputTarget.textContent = 'Olá, Stimulus!'
}
}

Mas, como sabe, não veremos quaisquer efeitos se não fizermos a ligação entre o HTML e o JavaScript. Vamos adicionar algum código à tua vista HTML. Podes colocar isto sempre que quiseres:

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

E sabes que mais? Isso é tudo! Se recarregar a sua página e vir "Hello, Stimulus!" na sua página, isso significa que a ligação está a funcionar corretamente. Simples, não é?
Ok, mas isto é apenas uma apresentação de texto simples. Podemos ter alguma ação? Sim, podemos! Como mencionei anteriormente, existe também a função ação de dados atributo. Vamos então alterar a nossa vista HTML:

<div data-controller="hello">
<p><input type="number" data-target="hello.days"><br><button data-action="click->hello#calculate">Calcular</button></p>
</div>

E o controlador de estímulo app/javascript/controladores/hello_controller.js:

importar { Controller } de "stimulus"

exportar classe predefinida extends Controller {
objectivos estáticos = ["output", "days"]
connect() {
this.outputTarget.textContent = "Há quanto tempo está em quarentena?
}
calculate() {
const element = this.daysTarget
const days = element.value
const lockdownDays = 14
let daysLeft = lockdownDays - days

se (daysLeft < 1) {
  alert('Você está livre!')
}
else {
  alert(`A quantidade de dias que precisa de ficar em quarentena: ${daysLeft}`)
}

}
}

Aqui temos uma aplicação muito simples que calcula quanto tempo temos de ficar em quarentena. Conseguimos fazer isto utilizando o atributo data-action no HTML.
Pode ver que também adicionámos "dias" à lista de objectivos no código JavaScript. Quando fazemos isso, o Stimulus cria automaticamente um this.daysTarget que devolve o primeiro elemento de destino correspondente.

Que mais precisa de saber?

Chamadas de retorno

Provavelmente reparou que existe um ligar() em ambos os exemplos. Este é para as chamadas de retorno incorporadas. Deves conhecer todas elas e o seu ciclo de vida, por isso aqui estão elas:
inicializar: uma vez, quando o controlador é instanciado pela primeira vez,
ligar: sempre que o controlador estiver ligado ao DOM,
desligar: sempre que o controlador é desligado do DOM.

Descritor de ação

O ação de dados valor clique->hello#calcular é chamado um descritor de ação. Este descritor diz o seguinte:

  • clique é o nome do evento,
  • Olá é o identificador do controlador,
  • calcular é o nome do método.

Objectivos

Tal como para as acções, o Estímulo tem um descritor de destino. O olá.dias descritor diz isso: Olá é o identificador do controlador,
dias é o nome do destino.

No exemplo anterior, mencionei que o Stimulus cria o this.daysTarget quando existe a propriedade "days" na lista de objectivos. Também precisa de saber que podem ser criadas mais propriedades. Relativamente ao exemplo, pode ter:

this.daysTarget que avalia até o primeiro alvo no escopo do controlador. Se não existir um alvo, a propriedade assinala um erro,
this.daysTargets avalia até uma matriz de todos os alvos de origem no âmbito do controlador,
this.hasDaysTarget devolve verdadeiro se existir um objetivo ou falso se não existir.

Como pode ver, o Stimulus é simples e pode ser facilmente adicionado à sua aplicação. Está a ganhar alguma popularidade no mercado de RoR e não estou surpreendido. Como programador Ruby, gosto muito de trabalhar com o Stimulus. Então, que tal dar uma volta com ele?

Ler mais:

  • Desenvolvimento de aplicações Web: Porque é que vale a pena escolher a tecnologia Ruby on Rails?
  • Chegou a altura de uma nova realidade. A era do trabalho remoto começou há um mês
  • 5 razões para encontrar programadores Ruby qualificados na Polónia

Artigos relacionados

Ilustração de uma aplicação de cuidados de saúde para smartphone com um ícone de coração e um gráfico de saúde em ascensão, com o logótipo The Codest, representando soluções digitais de saúde e HealthTech.
Desenvolvimento de software

Softwares para o setor de saúde: Tipos, casos de uso

As ferramentas em que as organizações de cuidados de saúde confiam atualmente não se assemelham em nada às fichas de papel de há décadas atrás. O software de cuidados de saúde apoia agora os sistemas de saúde, os cuidados aos doentes e a prestação de cuidados de saúde modernos em...

OCODEST
Ilustração abstrata de um gráfico de barras em declínio com uma seta ascendente e uma moeda de ouro que simboliza a eficiência ou a poupança de custos. O logótipo The Codest aparece no canto superior esquerdo com o slogan "In Code We Trust" sobre um fundo cinzento claro
Desenvolvimento de software

Como dimensionar a sua equipa de desenvolvimento sem perder a qualidade do produto

Aumentar a sua equipa de desenvolvimento? Saiba como crescer sem sacrificar a qualidade do produto. Este guia cobre sinais de que é hora de escalar, estrutura da equipe, contratação, liderança e ferramentas - além de como o The Codest pode...

OCODEST
Desenvolvimento de software

Construir aplicações Web preparadas para o futuro: ideias da equipa de especialistas do The Codest

Descubra como o The Codest se destaca na criação de aplicações web escaláveis e interactivas com tecnologias de ponta, proporcionando experiências de utilizador perfeitas em todas as plataformas. Saiba como a nossa experiência impulsiona a transformação digital e o negócio...

OCODEST
Desenvolvimento de software

As 10 principais empresas de desenvolvimento de software sediadas na Letónia

Saiba mais sobre as principais empresas de desenvolvimento de software da Letónia e as suas soluções inovadoras no nosso último artigo. Descubra como estes líderes tecnológicos podem ajudar a elevar o seu negócio.

thecodest
Soluções para empresas e escalas

Fundamentos do desenvolvimento de software Java: Um Guia para Terceirizar com Sucesso

Explore este guia essencial sobre o desenvolvimento de software Java outsourcing com sucesso para aumentar a eficiência, aceder a conhecimentos especializados e impulsionar o sucesso do projeto com The Codest.

thecodest

Subscreva a nossa base de conhecimentos e mantenha-se atualizado sobre os conhecimentos do sector das TI.

    Sobre nós

    The Codest - Empresa internacional de desenvolvimento de software com centros tecnológicos na Polónia.

    Reino Unido - Sede

    • Office 303B, 182-184 High Street North E6 2JA
      Londres, Inglaterra

    Polónia - Pólos tecnológicos locais

    • Parque de escritórios Fabryczna, Aleja
      Pokoju 18, 31-564 Cracóvia
    • Embaixada do Cérebro, Konstruktorska
      11, 02-673 Varsóvia, Polónia

      The Codest

    • Início
    • Sobre nós
    • Serviços
    • Case Studies
    • Saber como
    • Carreiras
    • Dicionário

      Serviços

    • Aconselhamento
    • Desenvolvimento de software
    • Desenvolvimento backend
    • Desenvolvimento de front-end
    • Staff Augmentation
    • Programadores de back-end
    • Engenheiros de nuvem
    • Engenheiros de dados
    • Outros
    • Engenheiros de GQ

      Recursos

    • Factos e mitos sobre a cooperação com um parceiro externo de desenvolvimento de software
    • Dos EUA para a Europa: Porque é que as empresas americanas decidem mudar-se para a Europa?
    • Comparação dos centros de desenvolvimento da Tech Offshore: Tech Offshore Europa (Polónia), ASEAN (Filipinas), Eurásia (Turquia)
    • Quais são os principais desafios dos CTOs e dos CIOs?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Direitos de autor © 2026 por The Codest. Todos os direitos reservados.

    pt_PTPortuguese
    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 cs_CZCzech pt_PTPortuguese