需要实现一个组件,组件内有通过document.getElementById('id')去获取真实dom的需要。如果同时调用多个这个组件 就会出现id 重复的问题,于是 我选择从外部传入一个值作为元素的id。有没有更好的解决办法。
需要实现一个组件,组件内有通过document.getElementById('id')去获取真实dom的需要。如果同时调用多个这个组件 就会出现id 重复的问题,于是 我选择从外部传入一个值作为元素的id。有没有更好的解决办法。
在组件内部生成一个随机ID,我经常用的是使用第三方库来生成,比如shortid,github地址:https://github.com/dylang/sho...,能生成短的,几乎不可能重复的ID。
// demo.jsx
const shortid = require('shortid');
class FooComponent extends Component {
constructor(props) {
super(props);
this.xxxDOMId = shortid.generate();
}
render() {
return (
<div id={this.xxxDOMId}>Hello</div>
)
}
}
13 回答12.8k 阅读
8 回答2.6k 阅读
2 回答5.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
5 回答897 阅读
5 回答1.2k 阅读✓ 已解决
3 回答2.2k 阅读
基于当前毫秒时间戳 + 随机字符串组合生成这个 ID 呗,碰撞概率还是很低的。