Flutter自定义构建插件tiede_builder_pkg的使用

Flutter 自定义构建插件 tiede_builder_pkg 的使用

特性

待办事项:此插件用于无渲染整个界面的UI构建器,仅重新渲染需要更改的部件。

开始使用

pubspec.yaml 文件中添加依赖

  1. 打开 pubspec.yaml 文件。
  2. 将以下依赖项添加到你的项目中:
dependencies:
     tiede_builder_pkg: ^1.0.1

获取依赖项

在终端中运行以下命令以获取所有依赖项:

flutter pub get

使用方法

消费测试 API

Cidades 类中消费 API 以便在数据发生变化时进行通知。

import "dart:convert";
import "package:http/http.dart" as http;

class ApiConsumer {

  Future<List> get(String uf) async {
    try{
      var response = await http.get(Uri.parse('https://brasilapi.com.br/api/ibge/municipios/v1/$uf?providers=dados-abertos-br,gov,wikipedia'));
      return jsonDecode(response.body);
    } catch(e) {
      return [];
    }
  }

}

使用 TiedeNotify 类来通知变量变化

TiedeNotify 类用于在变量发生改变时通知并重建相关部件。

import 'package:tiede_builder_pkg/tiede_builder_pkg.dart';
import 'api_consumer.dart';

class Cidades extends TiedeNotify{

  List cidades = [];
  String uf = 'MG';

  getCidades({String uf = 'MG'}) async {
    this.uf = uf;
    cidades.clear();

    notify(isLoading: true); // --------> 通知更改以重建部件并激活加载指示器

    ApiConsumer().get(uf).then((value) {
      cidades = value;
      print('get ok');

      notify(); // --------> 通知更改以在数据修改后重建部件

    });
  }

}

使用 TiedeBuilder 类来重建需要变更的部件

TiedeBuilder 类用于根据状态重建特定的部件。

import 'package:flutter/material.dart';
import 'package:tiede_builder_pkg/tiede_builder_pkg.dart';
import 'cidades_controller.dart';

class HomePage extends StatelessWidget {
    HomePage({super.key});

    Cidades cidades = Cidades();

    @override
    Widget build(BuildContext context) {
        print('build home page');

        return Scaffold(
            appBar: AppBar(
                title: const Text('Cidades'),
            ),
            body: Column(
                children: [
                    Padding(
                        padding: const EdgeInsets.all(20.0),
                        child: TextField(
                            decoration: const InputDecoration(
                                hintText: 'UF',
                                border: OutlineInputBorder(),
                            ),
                            onChanged: (value) {
                                if(value.toUpperCase().length == 2) {
                                    cidades.getCidades(uf: value.toUpperCase());
                                }
                            }
                        ),
                    ),
                    Flexible(
                        child: Padding(
                            padding: const EdgeInsets.all(20.0),
                            child: TiedeBuilder(
                                notify: cidades,
                                builder: (context)=>
                                    cidades.isLoading 
                                    ? const CircularProgressIndicator()
                                    : ListView(
                                        children: cidades.cidades.map((e) => Text('${e['nome']} - ${cidades.uf}')).toList(),
                                    ),
                            ),
                        ),
                    ),
                    TiedeBuilder(
                        notify: cidades,
                        builder: (context)=>
                            Padding(
                                padding: const EdgeInsets.all(12.0),
                                child: Text('Total de cidades: ${cidades.cidades.length}'),
                            ),
                    ),
                ],
            ),
        );
    }
}

更多关于Flutter自定义构建插件tiede_builder_pkg的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter自定义构建插件tiede_builder_pkg的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


tiede_builder_pkg 是一个自定义的 Flutter 插件,用于在 Flutter 项目中自动化生成代码或执行其他构建任务。使用此类插件可以显著提高开发效率,减少重复代码的编写。

以下是如何在 Flutter 项目中使用 tiede_builder_pkg 的步骤:

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 tiede_builder_pkg 作为开发依赖。

dev_dependencies:
  tiede_builder_pkg: ^version_number

^version_number 替换为 tiede_builder_pkg 的最新版本号。

2. 创建构建配置文件

在项目根目录下创建一个 build.yaml 文件。这个文件用于配置代码生成器。

targets:
  $default:
    builders:
      tiede_builder_pkg|my_builder:
        enabled: true

这里的 my_buildertiede_builder_pkg 提供的默认构建器,你可以根据插件的文档进行更详细的配置。

3. 使用生成器

在代码中使用特定的注解或标记来指示生成器生成代码。例如:

import 'package:tiede_builder_pkg/tiede_builder_pkg.dart';

@MyAnnotation()
class MyClass {
  String name;
  int age;
}

4. 运行代码生成

运行以下命令来执行代码生成:

flutter pub run build_runner build

这将执行 tiede_builder_pkg 中的代码生成器,并根据你的配置生成相应的代码。

5. 处理生成的代码

生成的代码通常会放在 lib/generated 目录下。你可以在项目中使用这些生成的代码。

6. 清理生成的代码(可选)

如果你想清理生成的文件,可以运行:

flutter pub run build_runner clean
回到顶部