Flutter唯一短ID生成插件shortuid的使用

Flutter唯一短ID生成插件shortuid的使用

ShortUid 是一个基于 Dart 的包,用于根据 UUIDV4 生成短的唯一标识符,并能够将它们互相转换。该包符合 RFC 4122 标准。

特性

  • 将 UUIDv4 转换为短唯一标识符(SID)并反之亦然。
  • 随机生成短唯一标识符。

使用

将 UUIDv4 转换为 SID

import 'package:shortuid/shortuid.dart';

final uuidv4 = 'd07b31c0-54d9-44d4-993d-ef8101ee1dad';
final shortuid = ShortUid.from_uid(uuidv4);

将 SID 转换为 UUIDv4

import 'package:shortuid/shortuid.dart';

final shortuid = '2n9c';
final uuidv4 = ShortUid.decode_to_uid(shortuid);

随机生成 SID

import 'package:shortuid/shortuid.dart';

final shortuid = ShortUid.create();

示例代码

以下是一个完整的示例代码,演示如何使用 shortuid 包进行 UUIDv4 和 SID 之间的转换以及随机生成 SID。

import 'package:flutter/material.dart';
import 'package:shortuid/shortuid.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text("ShortUid Demo")),
        body: Center(
          child: ShortUidDemo(),
        ),
      ),
    );
  }
}

class ShortUidDemo extends StatefulWidget {
  [@override](/user/override)
  _ShortUidDemoState createState() => _ShortUidDemoState();
}

class _ShortUidDemoState extends State<ShortUidDemo> {
  String _uuidv4 = '';
  String _sid = '';

  void _convertUuidToSid() {
    final uuidv4 = 'd07b31c0-54d9-44d4-993d-ef8101ee1dad';
    setState(() {
      _uuidv4 = uuidv4;
      _sid = ShortUid.from_uid(uuidv4).toString();
    });
  }

  void _convertSidToUuid() {
    final shortuid = '2n9c';
    setState(() {
      _sid = shortuid;
      _uuidv4 = ShortUid.decode_to_uid(shortuid);
    });
  }

  void _generateRandomSid() {
    setState(() {
      _sid = ShortUid.create().toString();
    });
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Column(
      mainAxisAlignment: MainAxisAlignment.center,
      children: [
        ElevatedButton(
          onPressed: _convertUuidToSid,
          child: Text("将 UUIDv4 转换为 SID"),
        ),
        SizedBox(height: 20),
        Text("UUIDv4: $_uuidv4"),
        SizedBox(height: 20),
        Text("SID: $_sid"),
        SizedBox(height: 20),
        ElevatedButton(
          onPressed: _convertSidToUuid,
          child: Text("将 SID 转换为 UUIDv4"),
        ),
        SizedBox(height: 20),
        ElevatedButton(
          onPressed: _generateRandomSid,
          child: Text("随机生成 SID"),
        ),
      ],
    );
  }
}

更多关于Flutter唯一短ID生成插件shortuid的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter唯一短ID生成插件shortuid的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,下面是一个关于如何在Flutter项目中使用shortuid插件来生成唯一短ID的示例代码。shortuid是一个用于生成简短且唯一ID的库,非常适合用于需要唯一标识符但又不希望ID太长的场景。

首先,你需要在你的pubspec.yaml文件中添加shortuid依赖:

dependencies:
  flutter:
    sdk: flutter
  shortuid: ^0.1.0  # 请注意版本号,使用最新版本

然后,运行flutter pub get来安装依赖。

接下来,在你的Flutter应用中,你可以按照以下方式使用shortuid

import 'package:flutter/material.dart';
import 'package:shortuid/shortuid.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter ShortUID Example',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  String? generatedUid;

  void _generateUid() {
    setState(() {
      generatedUid = shortuid();
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter ShortUID Example'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              'Generated Short UID:',
              style: TextStyle(fontSize: 20),
            ),
            SizedBox(height: 20),
            Text(
              generatedUid ?? 'Not generated yet',
              style: TextStyle(fontSize: 24, fontWeight: FontWeight.bold),
            ),
            SizedBox(height: 40),
            ElevatedButton(
              onPressed: _generateUid,
              child: Text('Generate UID'),
            ),
          ],
        ),
      ),
    );
  }
}

在这个示例中,我们创建了一个简单的Flutter应用,它包含一个按钮和一个文本显示区域。点击按钮时,会调用_generateUid方法,该方法使用shortuid()函数生成一个新的唯一短ID,并将其显示在文本区域中。

解释

  1. 添加依赖:在pubspec.yaml中添加shortuid依赖。
  2. 导入库:在Dart文件中导入package:shortuid/shortuid.dart
  3. 生成UID:调用shortuid()函数生成一个唯一短ID。
  4. 更新UI:使用setState方法更新UI以显示新生成的UID。

这个示例展示了如何在Flutter应用中使用shortuid插件来生成和使用唯一短ID。你可以根据需要将其集成到你的项目中。

回到顶部