React Native - 全局唯一标识符(GUID)的生成
作者:hangge | 2017-03-09 08:10
1,GUID介绍
- 全局唯一标识符(GUID,Globally Unique Identifier)是一种由算法生成的二进制长度为 128 位的数字标识符。
- GUID 一词有时也专指微软对 UUID 标准的实现。
- 在理想情况下,任何计算机和计算机集群都不会生成两个相同的 GUID。随机生成两个相同 GUID 的可能性非常小,但并不为 0。
- 为保证重复的情况不会发生,用于生成 GUID 的算法通常都加入了非随机的参数(如时间)。
- GUID 的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中每个 x 是 0-9 或 a-f 范围内的一个 4 位十六进制数。例如:6F9619FF-8B86-D011-B42D-00C04FC964FF 即为有效的 GUID 值。
2,生成GUID的方法
//生成随机ID:GUID
genId(){
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
var r = Math.random() * 16 | 0,
v = c == 'x' ? r : (r & 0x3 | 0x8);
return v.toString(16);
}).toUpperCase();
}
3,使用样例
(1)效果图
程序启动后,随机生成一个 GUID 并显示在页面上。

(2)样例代码
import React, { Component } from 'react';
import {
AppRegistry,
StyleSheet,
Text,
View,
} from 'react-native';
//主应用
class Main extends Component {
render() {
return (
<View style={styles.flex,{marginTop:30}}>
<Text>{this.genId()}</Text>
</View>
);
}
//生成随机ID:GUID
genId(){
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
var r = Math.random() * 16 | 0,
v = c == 'x' ? r : (r & 0x3 | 0x8);
return v.toString(16);
}).toUpperCase();
}
}
//样式定义
const styles = StyleSheet.create({
flex:{
flex:1
},
});
AppRegistry.registerComponent('HelloWorld', () => Main);
全部评论(0)