yeet

在 Flutter 中导航的炫酷方式

如何 yeet?

  1. 安装最新版本的 yeet

    dependencies
    flutter
    sdk: flutter
    yeet: ^0.4.7

  2. 定义你的 yeets

    final yeet = Yeet(
    children: [
    Yeet(
    path: '/',
    builder: () => HomeView(),
    ),
    Yeet(
    path: r'/user/:id(\d+)',
    builder: (ctx) => UserView(int.parse(ctx.params['id']!)),
    children: [
    Yeet(
    path: 'posts',
    builder: (ctx) => PostsView(int.parse(ctx.params['id']!)),
    )
    ],
    ),
    Yeet(
    path: ':
    (.*)',
    builder: (_) => NotFoundView(),
    ),
    ],
    );

  3. 将您的 MaterialApp 转换为 MaterialApp.router 并添加以下参数。

    return MaterialApp.router(
    routeInformationParser: YeetInformationParser(),
    routerDelegate: YeeterDelegate(yeet: yeet),
    );

  4. 设置新路径。

    context.yeet('/your/new/path');
    context.yeet('can/be/relative');

  5. 并弹出。

    context.yeet();

  6. 尽情享用吧!

  7. 缺少某个功能?有建议?发现 bug?打开一个 issue。 谢谢!

从 0.3.2 迁移到 0.4.0

  1. builder 的参数已从 (params, queryParams) 更改为仅一个 (context)

之前

Yeet(
  path: '/user/:id'
  builder: (params, queryParams) => UserPage(id: params[id]!, edit: queryParams['edit'] ?? false)
)

之后

Yeet(
  path: '/user/:id'
  builder: (context) => UserPage(id: context.params[id]!, edit: context.queryParams['edit'] ?? false)
)

现在页面无需立即使用路径或查询参数,并且始终可以在 build 函数内的 BuildContext 中访问它。

  1. Yeet.custom 已被移除。取而代之的是,您可以使用 transition 参数来配置页面过渡。默认情况下,Transition 是 YeetTransition.adaptive(),这意味着在 iOS 和 macOS 上它使用 YeetTransition.cupertino(),而在其他平台上使用 YeetTransition.material()

之前

Yeet.custom(
  path: '/',
  transitionsBuilder: ...,
  opaque: ...,
  //...
)

之后

Yeet(
  path: '/',
  transiton: YeetTransition.custom(
    transitionsBuilder: ...,
    opaque: ...,
    //...
  ),
)

GitHub

https://github.com/HosseinYousefi/yeet