Flutter UI组件库插件beagle_components的使用
Flutter UI组件库插件beagle_components的使用
本库提供了Beagle的基础组件。目前处于Alpha阶段,部分组件尚未实现。我们欢迎社区的帮助来改进缺失的功能。在本文档的末尾,您可以找到“开发状态”部分,其中列出了我们在发布稳定版本之前需要完成的所有工作。
版本号规则
每个Beagle Flutter的Alpha和Beta版本都会遵循0.x.y
的模式,其中x
是基于的Beagle Web的版本号,y
是相同x
值下的后续版本号。
在版本号中,x
指的是Beagle Web的版本号,因为Beagle Flutter在底层使用了该库。
非空安全兼容性
对于Alpha版本,我们将不支持非空安全。然而,这是一个高优先级的实现,应该会在未来的版本中可用。
安装
- 打开项目的根目录下的
pubspec.yaml
文件。 - 在
dependencies
下添加beagle_components: ^0.9.0-alpha
(或最新版本)。 - 在IDE(如Android Studio或Visual Studio Code)中点击
pub get
,或者从终端输入flutter pub get
。
dependencies:
beagle_components: ^0.9.0-alpha
使用
使用Beagle Components库非常简单。按照以下步骤操作即可使用它。
1. 配置
使用Beagle Components库无需额外配置,但通常需要与Beagle库一起使用。要了解如何配置Beagle,请查看Beagle初始化文档。
2. 引入Beagle Components
打开lib/main.dart
文件,引入package:beagle/beagle.dart
和package:beagle_components/beagle_components.dart
。然后,在主函数中,在渲染任何内容之前,调用BeagleSdk.init
,并传递baseUrl
参数和components: defaultComponents
。
import 'package:beagle/beagle.dart';
import 'package:beagle_components/beagle_components.dart';
void main() {
BeagleSdk.init(
baseUrl: 'http://yourBffBaseUrl.io', // 替换为实际的BFF Base URL
components: defaultComponents,
);
runApp(const BeagleSampleApp());
}
3. 渲染远程组件
要渲染一个Beagle Widget,必须使用由Beagle库提供的BeagleWidget
组件。该组件只需要一个参数screenRequest
,它指定了获取第一个服务器驱动视图的请求。示例如下:
import 'package:beagle/beagle.dart';
import 'package:beagle_components/beagle_components.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
void main() {
BeagleSdk.init(
baseUrl: 'http://yourBffBaseUrl.io',
components: defaultComponents,
);
runApp(const BeagleSampleApp());
}
class BeagleSampleApp extends StatelessWidget {
const BeagleSampleApp({Key key}) : super(key: key);
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Beagle Sample',
home: Scaffold(
body: BeagleWidget(
screenRequest: BeagleScreenRequest('welcome'), // 请求的屏幕名称
),
),
);
}
}
更多关于Flutter UI组件库插件beagle_components的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter UI组件库插件beagle_components的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
beagle_components
是一个用于 Flutter 的 UI 组件库插件,它基于 Beagle 框架,旨在帮助开发者快速构建跨平台的 UI 组件。Beagle 是一个声明式的 UI 框架,允许开发者通过 JSON 或 DSL 来定义 UI,并且可以在多个平台上运行,包括 Web、iOS 和 Android。
安装 beagle_components
首先,你需要在 pubspec.yaml
文件中添加 beagle_components
依赖:
dependencies:
flutter:
sdk: flutter
beagle_components: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
来安装依赖。
使用 beagle_components
beagle_components
提供了一系列预定义的 UI 组件,你可以直接在 Flutter 应用中使用这些组件。以下是一些常见的使用示例:
1. 使用 BeagleText
BeagleText
是一个用于显示文本的组件,类似于 Flutter 的 Text
组件。
import 'package:flutter/material.dart';
import 'package:beagle_components/beagle_components.dart';
class MyHomePage extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Beagle Components Example'),
),
body: Center(
child: BeagleText(
text: 'Hello, Beagle!',
style: TextStyle(fontSize: 24, color: Colors.blue),
),
),
);
}
}
2. 使用 BeagleButton
BeagleButton
是一个按钮组件,类似于 Flutter 的 ElevatedButton
。
import 'package:flutter/material.dart';
import 'package:beagle_components/beagle_components.dart';
class MyHomePage extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Beagle Components Example'),
),
body: Center(
child: BeagleButton(
text: 'Click Me',
onPressed: () {
print('Button Pressed!');
},
),
),
);
}
}
3. 使用 BeagleImage
BeagleImage
是一个用于显示图片的组件,类似于 Flutter 的 Image
组件。
import 'package:flutter/material.dart';
import 'package:beagle_components/beagle_components.dart';
class MyHomePage extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Beagle Components Example'),
),
body: Center(
child: BeagleImage(
url: 'https://example.com/image.png',
width: 200,
height: 200,
),
),
);
}
}
4. 使用 BeagleListView
BeagleListView
是一个列表组件,类似于 Flutter 的 ListView
。
import 'package:flutter/material.dart';
import 'package:beagle_components/beagle_components.dart';
class MyHomePage extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Beagle Components Example'),
),
body: BeagleListView(
children: [
BeagleText(text: 'Item 1'),
BeagleText(text: 'Item 2'),
BeagleText(text: 'Item 3'),
],
),
);
}
}
自定义组件
beagle_components
还允许你通过 JSON 或 DSL 来定义自定义组件。你可以使用 BeagleWidget
来加载这些自定义组件。
import 'package:flutter/material.dart';
import 'package:beagle_components/beagle_components.dart';
class MyHomePage extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Beagle Components Example'),
),
body: BeagleWidget(
json: '''
{
"_beagleComponent_": "beagle:container",
"children": [
{
"_beagleComponent_": "beagle:text",
"text": "Hello, Beagle!"
},
{
"_beagleComponent_": "beagle:button",
"text": "Click Me",
"onPress": [
{
"_beagleAction_": "beagle:alert",
"message": "Button Pressed!"
}
]
}
]
}
''',
),
);
}
}