私はカードをプレイするためのカスタム要素に取り組んでいます。背景としてSVG画像を使用し、スーツやランクの属性が変更されるたびに背景画像を変更したいと考えています。私の知る限りこれを行うには2つの方法があります知っているよう複数の事前定義されたスタイルまたは動的にインラインスタイルを変更しますか?
- 1「はattributeChangedCallback」メソッドを使用することです:
static get observedAttributes() {return ["suit", "rank"];}
attributeChangedCallback(name, oldValue, newValue) {
this.style.backgroundImage = `url(...)`;
}
を、もう一方はCSS属性セレクタの多くを持っていることです。
:host([suit="clubs"][rank="4"]) {
background-image: url(...);
}
:host([suit="clubs"][rank="5"]) {
background-image: url(...);
}
...
どちらも動作しますが、JSの方法ではインラインスタイルが追加されています。私はこれを防止したいと思いますし、CSSの方法は非常に大きいです。 私は考慮する必要がある巨大なパフォーマンスの違いはありますか?
参考までに、インラインスタイルは効率的です。彼らはHTMLページを維持するのをより困難にすることができるので、悩まされます。 JSを使用しているとき、彼らは効率的であるため、威嚇されません。この場合、コードをより保守性のあるものにするようなオプションを選択してください。私は個人的にここでJSを選ぶだろう。 –