您的位置:首页 > 科技 > IT业 > 国外看新闻app推荐_央企直招出国劳务网站_怎么推广自己的网站?_今天国内最新消息

国外看新闻app推荐_央企直招出国劳务网站_怎么推广自己的网站?_今天国内最新消息

2025/4/6 1:56:34 来源:https://blog.csdn.net/zackslee/article/details/145513623  浏览:    关键词:国外看新闻app推荐_央企直招出国劳务网站_怎么推广自己的网站?_今天国内最新消息
国外看新闻app推荐_央企直招出国劳务网站_怎么推广自己的网站?_今天国内最新消息

背景

默认情况下,Flutter 打包 web 以后,首次打开页面需要加载大量的资源,这就需要做首屏加载优化。

渲染引擎

通过分析,canvaskit 和 skwasm 需要加载较大的引擎包,很难优化,目前选择 3.22 版本,故选择 HTML Render 引擎

Flutter Web 计划在 2025 开始弃用 HTML Render。如果是 2025 年的新版本,可以考虑使用 skwasm 引擎。

字体图标裁剪

体积裁剪,通过 bulid apk shaking icon,得到一个裁剪后的字体库,替换调 Flutter Web 打包的对应字体产物

先在 App 项目构建 apk:

flutter build apk --tree-shake-icons

找到 build/host/intermediates/assets/release/mergeReleaseAssets/flutter_assets/fonts/MaterialIcons-Regular.otf
将该文档复制到 web/fonts/ 文件夹

文件采样压缩前压缩后压缩率
MaterialIcons-Regular.otf1.5M2k1%

延迟加载

使用延迟加载拆分文件,当前页面不需要的使用的代码延迟加载

Dart 中提供了 defered 关键词,用于延迟加载组件。

参考下方实现一个 DeferredWidget 组件

import 'dart:async';
import 'package:ealing_widget/common/common_color.dart';
import 'package:flutter/material.dart';typedef LibraryLoader = Future<void> Function();
typedef DeferredWidgetBuilder = Widget Function();///延迟加载组件
class DeferredWidget extends StatefulWidget {DeferredWidget(this.libraryLoader, this.createWidget, {Key? key, Widget? placeholder}) : placeholder = placeholder ?? Container(color: CommonColors.color_widget_background), super(key: key);final LibraryLoader libraryLoader;final DeferredWidgetBuilder createWidget;final Widget placeholder;// 存储 libraryLoader 对应的 future 数据static final Map<LibraryLoader, Future<void>> _moduleLoaders = {

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com