我正在开发一个重用大量常量的应用程序。我知道我可以使用连线 ID 在多个地方使用相同的数据,但我不确定是否应该在每次要使用该数据时创建一个新的全局唯一 ID。
这是我正在使用的简化示例:
const colors = [
{value: 'red', label: 'Red'},
{value: 'blue', label: 'Blue'}
]
class MyElement extends HTMLElement {
constructor() {
super()
this.html = hyperHTML.bind(this)
}
connectedCallback() {
this.html`
Hi, ${this.getAttribute('name')}! What is your favorite color?<br/>
<select>
${colors.map(option => hyperHTML.wire(option)`<option value=${option.value}>${option.label}</option>`)}
</select>
`
}
get name() {
return this.getAttribute('name')
}
}
customElements.define('my-element',MyElement);
hyperHTML.bind(document.body)`
<my-element name="Alice"></my-element>
<my-element name="Bob"></my-element>`
我知道除非我指定一个电线 ID,否则option
s 只会出现在一个地方。我可以:${this.name}
用作电汇 ID,但我必须弄清楚如果有两个同名的人该怎么办,以及如果我想要一个表格来表示“你最喜欢的颜色是什么?” 另一个是“你的衬衫是什么颜色的?”,我必须为此制作另一个唯一的 ID。
有没有办法以某种方式确定线路 ID 的范围,还是我必须制作全球唯一的?