返回 导航

React / React Native

hangge.com

React Native - 全局唯一标识符(GUID)的生成

作者:hangge | 2017-03-09 08:10

1,GUID介绍

  • 全局唯一标识符(GUIDGlobally Unique Identifier)是一种由算法生成的二进制长度为 128 位的数字标识符。
  • GUID 一词有时也专指微软对 UUID 标准的实现。
  • 在理想情况下,任何计算机和计算机集群都不会生成两个相同的 GUID。随机生成两个相同 GUID 的可能性非常小,但并不为 0
  • 为保证重复的情况不会发生,用于生成 GUID 的算法通常都加入了非随机的参数(如时间)。
  • GUID 的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中每个 x0-9a-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)

回到顶部