Flutter实用工具插件beyond_helpers的使用

Flutter实用工具插件beyond_helpers的使用 #

Beyond Helpers 是一组用于实现 Beyond 架构的实用工具。

ViewModel #

所有 ViewModel 都继承自的基类。

ViewModelRoot #

一个包裹所有依赖于 ViewModel 的其他 Widget 的 Widget。当不再需要时,ViewModelRoot 会释放 ViewModel。

更多信息 #

更多信息请参阅 beyond 的官方文档 这里

完整示例 Demo #

以下是一个完整的示例,展示了如何使用 Beyond Helpers 插件。

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

// 定义一个简单的 ViewModel
class CounterViewModel extends ViewModel {
  int _counter = 0;

  int get counter => _counter;

  void increment() {
    _counter++;
    notifyListeners(); // 通知监听者数据已更改
  }
}

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: ViewModelRoot(
        viewModel: CounterViewModel(), // 创建 ViewModel 实例
        child: Scaffold(
          appBar: AppBar(
            title: Text('Beyond Helpers Demo'),
          ),
          body: Center(
            child: CounterView(),
          ),
        ),
      ),
    );
  }
}

class CounterView extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final viewModel = ViewModelProvider.of<CounterViewModel>(context);
    return Column(
      mainAxisAlignment: MainAxisAlignment.center,
      children: [
        Text('Count: ${viewModel.counter}'), // 显示计数器值
        ElevatedButton(
          onPressed: viewModel.increment, // 增加计数器
          child: Text('Increment'),
        ),
      ],
    );
  }
}

在这个示例中,我们定义了一个简单的 CounterViewModel 类,该类继承自 ViewModel 并包含一个计数器。MyApp 使用 ViewModelRoot 包裹了 Scaffold,并传递了 CounterViewModel 实例。CounterView 组件通过 ViewModelProvider.of<CounterViewModel>(context) 获取 CounterViewModel 实例,并在界面上显示计数器的值以及一个按钮来增加计数器。


更多关于Flutter实用工具插件beyond_helpers的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

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


beyond_helpers 是一个 Flutter 实用工具插件,旨在提供一些常见的辅助功能,以简化开发流程。它包含了一些常用的工具类、扩展方法和实用函数,可以帮助开发者更高效地编写代码。以下是一些常见的用法和功能:

1. 安装

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

dependencies:
  flutter:
    sdk: flutter
  beyond_helpers: ^最新版本

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

2. 常用功能

2.1. 字符串扩展

beyond_helpers 提供了一些字符串的扩展方法,例如:

import 'package:beyond_helpers/beyond_helpers.dart';

void main() {
  String str = "Hello, World!";
  
  // 判断字符串是否为空或空白
  bool isEmptyOrBlank = str.isNullOrBlank;
  
  // 反转字符串
  String reversedStr = str.reverse;
  
  print(isEmptyOrBlank); // false
  print(reversedStr);    // !dlroW ,olleH
}

2.2. 日期时间扩展

beyond_helpers 还提供了一些日期时间的扩展方法,例如:

import 'package:beyond_helpers/beyond_helpers.dart';

void main() {
  DateTime now = DateTime.now();
  
  // 格式化日期
  String formattedDate = now.format("yyyy-MM-dd");
  
  // 判断日期是否是今天
  bool isToday = now.isToday;
  
  print(formattedDate); // 2023-10-01
  print(isToday);       // true
}

2.3. 集合扩展

beyond_helpers 提供了一些集合的扩展方法,例如:

import 'package:beyond_helpers/beyond_helpers.dart';

void main() {
  List<int> numbers = [1, 2, 3, 4, 5];
  
  // 随机打乱列表
  numbers.shuffle();
  
  // 判断列表是否为空或空列表
  bool isEmptyOrEmptyList = numbers.isNullOrEmpty;
  
  print(numbers); // [3, 1, 5, 2, 4] (随机顺序)
  print(isEmptyOrEmptyList); // false
}

2.4. 网络请求

beyond_helpers 提供了简化的网络请求工具,例如:

import 'package:beyond_helpers/beyond_helpers.dart';

void main() async {
  var response = await HttpHelper.get("https://jsonplaceholder.typicode.com/posts");
  
  if (response.isSuccessful) {
    print(response.data);
  } else {
    print("Error: ${response.errorMessage}");
  }
}

2.5. 本地存储

beyond_helpers 提供了简化的本地存储工具,例如:

import 'package:beyond_helpers/beyond_helpers.dart';

void main() async {
  await LocalStorageHelper.setString("key", "value");
  
  String value = await LocalStorageHelper.getString("key");
  
  print(value); // value
}
回到顶部