美文网首页
Flutter 热加载和热重启的区别

Flutter 热加载和热重启的区别

作者: 小冰山口 | 来源:发表于2023-12-04 21:35 被阅读0次

随便写了个demo, 修改widget的颜色, 开启hot reload 发现并没有什么改变. 只有hot restart才有反应

import 'package:flutter/material.dart';

void main() {
  runApp(build());
}

Widget build() {
  return MaterialApp(
      home: Scaffold(
    body: Center(
      child: ConstrainedBox(
        constraints: BoxConstraints.tight(const Size(100, 100)),
        child: Container(
          color: Colors.yellow,
          width: 30,
          height: 30,
        ),
      ),
    ),
  ));
}

跟记忆中的好像有点不太一样
热加载(hot reload)热重启(hot restart)有什么区别呢?

·Hot reload loads code changes into the VM and re-builds the widget tree, preserving the app state; it doesn't rerun main( ) or initState().(command\ in Intellij and Android Studio,^F5 in VSCode)

·Hot restart loads code changes into the VM, and restarts the Flutter app, losing the app state. (↑command\ in IntelliJ and Android Studio,↑commandF5 in VSCode)

热加载(hot reload)加载代码修改到虚拟机, 重新buildwidget树, 保留了app状态, 它不会重走main方法和initState方法(但会走build方法)

热重启(hot restart)加载代码修改到虚拟机, 重启了Flutter app, 丢失了app状态, 它会重走main方法

那么回到我上面的demo, 我这个widget是在main里面加载的, 但是hot reload并不会重走main, 所以改变是不会生效的. 但当你的改变在build方法里时, 就可以生效

PS: VS上的快捷键

Hot reload command + \ (Android Studio), control + F5 (VS Code)

Hot reload shift + command + \ (Android Studio), shift + control + F5 (VS Code)

这里有一个类似的问题

相关文章

  • Tomcat之热部署和热加载源码分析

    热部署和热加载类似,都是在不重启Tomcat情况下,使最新代码生效。 热部署与热加载的区别: 热部署表示重新部署应...

  • Flutter_热重载和热重启

    热重载(Hot Reload)Flutter并不会重新执行 main 函数,只会根据原来的根节点重新创建控件树。热...

  • tomcat-1

    tomcat-1 tomcat 热部署和热加载 热部署和热加载可以在运行过程中不重启系统升级WEB应用。 热加载 ...

  • flutter MissingPluginException

    如果您正在使用热重启或热重新加载,它将出现此问题。由于Flutter必须将插件依赖项注入应用程序的特定于平台的部分...

  • 12、Host容器:Tomcat如何实现热部署和热加载?

    要在运行的过程中升级Web应用,如果你不想重启系统,实现的方式有两种:热加载和热部署。 那如何实现热部署和热加载呢...

  • Gin hot-loading

    目标 实现热加载(热更新/热重启),边写代码边编译,方便修改后无需重启实时更新。 fresh Fresh是一个命令...

  • flutter Hot reload(热重载)与重启的区别

    flutter中 运行有三种方式:一:冷启动(从零开始启动,花费时间长,重新编译)二:热重载(主要是执行build...

  • 热加载和热部署的区别

    问题来源: eclipse和myeclipse中tomcat配置在没有勾选use workspace metada...

  • 2. Flutter你想要的热更新之 Flutter 资源加载

    Flutter你想要的热更新之加载 Flutter 资源 本章目的是要搞清楚在 iOS 端 Flutter 是如何...

  • SpringBoot热部署

    热部署与热加载区别 热部署在服务器运行时重新部署项目,会释放内存,比热加载更彻底。 热加载依赖Java类加载机制,...

网友评论

      本文标题:Flutter 热加载和热重启的区别

      本文链接:https://www.haomeiwen.com/subject/giergdtx.html