0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Stimulusの名称ルール

Posted at

バージョン

stimulus-rails 1.3.4

動機

Stimulusの名称ルールがcamelCaseなのかsnake_caseなのかkabab-caseなのか覚えられないので整理する。

まとめ

JavaScript

対象 名称規則
ファイル名 snake_case sum_scores_controller.js
valuesキー名称 camelCase mathScore: Number
targets名称 camelCase 'sumDisplay'
関数名 camelCase function displaySum(){

HTML

対象 名称規則
コントローラー名 kebab-case data-controller="sum-scores"
data属性名 kebab-case data-sum-scores-target="sumDisplay"
actionコントローラー名 kebab-case data-action="click->sum-scores#displaySum"
actionメソッド名 camelCase 同上

※Railsのヘルパーメソッドではdata属性名はキーワード引数になるのでsnake_caseにする。

<%= form.label :sum, data: { sum_scores_target: "sumDisplay" } %>

具体例

JavaScript

ファイル名はsnake_case。

app/javascript/contollers/sum_scores_controller.js

名称はすべてcamelCase。snake_caseはJavaScript構文ではOKだがStimulusでは使ってはいけない。

import { Controller } from "@hotwired/stimulus"

export default class extends Controller {
  static values = { mathScore: Number, scienceScore: Number };
  static targets = [ "sumDisplay" ];

  displaySum() {
    this.sumDisplayTarget.textContent = this.mathScoreValue + this.scienceScoreValue;
  }
}

HTML

コントローラー名はkebab-case。
HTMLの属性名はkebab-caseだが、Railsのヘルパーメソッドではキーワード引数になるのでsnake_caseにする。
属性値とdata-actionに指定するメソッド名はcamelCase(JavaScript内での名称と同じ)。

HTMLの例

<div data-controller="sum-scores" 
  data-sum-scores-math-score-value="82"
  data-sum-scores-science-score-value="85">
  <div data-sum-scores-target="sumDisplay"></div>
  <button type="button" data-action="click->sum-scores#displaySum">計算</button>
</div>

Railsヘルパーメソッドの例

<div data-controller="sum-scores" 
  data-sum-scores-math-score-value="82"
  data-sum-scores-science-score-value="85">
  <%= form.label :sum, data: { sum_scores_target: "sumDisplay" } %>
  <button type="button" data-action="click->sum-scores#displaySum">計算</button>
</div>
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?