聊个比较有意思的 Flutter Web 问题

首先是,前段时间 Flutter 和 Dart 的官网都选择离开 medium ,然后迁到了自己的域名下,你觉得是为什么?

其实理由很简单,之前的 Flutter Web 不支持 SEO ,所以 Flutter 官方不得不一直把文章发布在 medium ,但是现在不一样了,今年开始社区搞了一个项目叫 Jaspr ,这是是一个第三方的 Dart Web 框架,记住不是 Flutter,然后 dart.dev、 flutter.dev 和 docs.flutter.dev 这些官方网站,现在都已经全部迁移到 Jaspr。

Jaspr 的特别在于,这是一个传统的 Dart Web 框架,支持客户端渲染、服务器端渲染和静态网站生成,它有点古法回归的味道,其实就是可以用 Flutter 写传统 DOM Web ,因为 Flutter 官方现在都是 WASM 了,所以基于 HTML 和 CSS 的场景就变成 Jaspr 承担了,当然只是写法一样,代码不会完全一模一样 :

scala 复制代码
class FeatureCard extends StatelessComponent {
const FeatureCard({
    required this.title,
    required this.description,
    super.key,
  });
​
finalString title;
finalString description;
​
@override
  Component build(BuildContext context) {
    return div(classes: 'feature-card', [
      h3([.text(title)]),
      p([.text(description)]),
    ]);
  }
}

官方之所以迁移到 Jaspr ,主要是因为 Jaspr 内置的部分渲染支持将每个页面预渲染为静态 HTML,然后只为需要的组件附加客户端逻辑,而因为 Flutter 官网的大部分内容都是静态的,只需要少量的交互功能,这样可以实现提速和针对 SEO 的场景优化。

最最重要是,Jaspr Content 支持 Markdown 驱动型网站,

所以官方能迁回自己的域名托管 blog ,考的是社区靠谱的支持。

然后就是现在 Flutter Web 的情况,在最新版发布后其实已经有了一些变化,比如支持了 flutter build web --release --wasm --enable-wasm-deferred-loading ,可以对 wasm 进行拆包,也就是加载可以加快了。

然后目前基于 dart2wasm 加速器和多线程渲染 skwasm 的支持,WebAssembly 在 Flutter Web 上的表现确实已经可圈可点了:

核心表现主要是在性能上,比如:

  • 在运行大量组件的情况下的 diff 更新,Wasm 帧时间保持流畅的 60 FPS 输出
  • Skwasm 将光栅化操作发送到专用的 Web Worker,支持保证了浏览器线程的交互流
  • 对比以前包更小了,还可以拆包

但是这里有个最重要的是,Flutter 定位一直都不是主打和传统 H5 竞争,它的目标是让 Flutter 的 canvas 可以无缝支持到浏览器,同时深耕 wasm 场景。

不过目前可惜的是,Flutter 官方还是没有支持 webgpu ,社区版本的 webgpu 倒是有,但是官方对这个一直闭口不谈,确实有点可惜了。

反而 Flutter Web 不完全解决 SEO 和 Ctrl + F 的问题,就只能被局部应用,不过实际上官方对 Web 甚至比对 PC 上心。

相关推荐
Jmyd01235 小时前
Web端3D营销展厅技术实现路径:从素材上云到线索回流的数据链路
前端·3d·性能优化·三维数字化
砚凝霜5 小时前
【软考信息安全】第二十二章 Web服务器安全分析与增强——Apache与IIS
服务器·前端·安全
小 黄 鸡6 小时前
Flutter 面试必会知识点详解(从基础到进阶)
flutter·面试·职场和发展
u0111026757 小时前
JPG、PNG、WebP 怎么选?按透明度、体积和使用场景做判断
前端·javascript·vue.js·图像处理·ai作画
jerrywus8 小时前
让 AI 写完代码后交一份报告:我改造了 answer-me-with-html
前端·claude·cursor
派小心.8 小时前
小程序分享链路中来源参数的传递校验
大数据·前端·数据库·人工智能·小程序·数据分析
hhb_6188 小时前
一键生成数据看板,ECharts实战演示
前端·javascript·echarts
Java后端的Ai之路9 小时前
08_React组件API
前端·react.js·前端框架
小马不起床9 小时前
零基础玩转 FastAPI_09:前端基础工程构建
前端·状态模式·fastapi
jack186899 小时前
安卓手机忘记锁屏密码怎么办? 无需密码也可解锁
android·智能手机