Flutter生成短UUID插件short_uuids的使用

发布于 1周前 作者 ionicwang 来自 Flutter

Flutter生成短UUID插件short_uuids的使用

标题

Flutter生成短UUID插件short_uuids的使用

内容

生成短UUID或翻译标准UUID为较短格式,并且可以进行反向转换。

这是从Node包short-uuid直接转换到Dart的最直接方式。

示例代码

const short = ShortUuid();

// Quick start with flickrBase58 format
short.generate(); // 73WakrfVbNJBaAmhQtEeDv

深入介绍

Short UUID以RFC4122 v4兼容的UUID开始,并将其翻译成其他,通常是较短的格式。它还提供了将RFC兼容的UUID与较短格式之间相互转换的翻译器。

格式返回一致长度的值,除非特别请求否则如此。 这是通过在开头添加第一个([0])字符来实现的。 以前版本可以将填充的格式翻译回UUID。

简而言之,它完全遵循其Node版的行为。

// ShortUuid最好通过`init`调用来初始化而不是创建一个实例。
final translator = ShortUuid.init(); // 默认为flickrBase58
final decimalTranslator = ShortUuid.init("0123456789"); // 提供特定字母表用于翻译
final cookieTranslator = ShortUuid.init(ShortUuid.constants.cookieBase90); // 使用常量进行翻译

// 生成较短的v4 UUID
translator.generate(); // mhvXdrZT4jP5T8vBxuvm75

// 将UUID翻译为和从较短格式
translator.toUUID(shortId); // a44521d0-0fb8-4ade-8002-3385545c3318
translator.fromUUID(regularUUID); // mhvXdrZT4jP5T8vBxuvm75

// 生成普通的UUID
// - 从库中不创建翻译器
ShortUuid.uuid(); // fd5c084c-ff7c-4651-9a52-37096242d81c
// - 每个翻译器都提供uuid.v4()函数
translator.uuid(); // 3023b0f5-ec55-4e75-9cd8-104700698052

// 查看翻译器使用的字母表
translator.alphabet;

// 查看常量
short.constants.flickrBase58; // 避免相似字符(0/O, 1/I/l等)
short.constants.cookieBase90; // 安全用于HTTP Cookie值的小ID。

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

1 回复

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


当然,下面是一个关于如何在Flutter项目中使用short_uuids插件来生成短UUID的示例代码。

首先,确保你已经在pubspec.yaml文件中添加了short_uuids依赖:

dependencies:
  flutter:
    sdk: flutter
  short_uuids: ^0.1.0  # 请检查最新版本号并替换

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

接下来,在你的Flutter项目中,你可以按照以下步骤使用short_uuids插件来生成短UUID。

示例代码

  1. 导入包

在你的Dart文件中导入short_uuids包。

import 'package:short_uuids/short_uuids.dart';
  1. 生成短UUID

使用ShortUuids类来生成短UUID。下面是一个完整的示例,展示如何在Flutter应用中生成并显示短UUID。

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

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

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

class ShortUuidExample extends StatefulWidget {
  @override
  _ShortUuidExampleState createState() => _ShortUuidExampleState();
}

class _ShortUuidExampleState extends State<ShortUuidExample> {
  String shortUuid = '';

  @override
  void initState() {
    super.initState();
    _generateShortUuid();
  }

  void _generateShortUuid() async {
    final ShortUuids shortUuids = ShortUuids();
    String uuid = await shortUuids.generate();
    setState(() {
      shortUuid = uuid;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Short UUID Example'),
      ),
      body: Center(
        child: Text(
          'Generated Short UUID: $shortUuid',
          style: TextStyle(fontSize: 24),
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: () {
          _generateShortUuid();
        },
        tooltip: 'Generate Short UUID',
        child: Icon(Icons.refresh),
      ),
    );
  }
}

解释

  1. 导入包:在文件顶部导入short_uuids包。
  2. 创建Flutter应用:使用MaterialApp创建一个基本的Flutter应用。
  3. 创建主页面ShortUuidExample是一个有状态的Widget,用于显示生成的短UUID。
  4. 初始化状态:在initState方法中调用_generateShortUuid函数生成一个短UUID。
  5. 生成短UUID_generateShortUuid函数使用ShortUuids类的generate方法来生成一个短UUID,并通过setState方法更新UI。
  6. 显示短UUID:在build方法中,使用Text组件显示生成的短UUID。
  7. 刷新按钮:添加一个FloatingActionButton,点击按钮时重新生成短UUID。

这个示例展示了如何在Flutter应用中集成并使用short_uuids插件来生成短UUID。你可以根据需求进一步扩展和修改这个示例。

回到顶部