flutter入门到放弃

  1. flutter支持热更改
    修改完成后按下保存或者Hot reload(闪电)会自动同步更新页面;
  2. flutter view没有生命周期
    view对应的widgets是不可变的,不能直接更新,要更新必须变更widget状态。简单来说就是用状态改变试图;
  3. 更新view状态需要使用到StatelessWidget状态变更;

入口

Lib目录下main.dart main方法是最开始的入口


入口.png

StatelessWidget和StatefulWidget区别

  • StatelessWidget(无状态组件):
    StatelessWidget是一个不可变的组件,它的属性(即构造函数中传入的值)在组件创建后就不能再修改。
    StatelessWidget通常用于表示那些不需要改变内部状态的简单UI元素。例如,静态文本、图标、按钮等。
    StatelessWidget的build方法会在每次渲染时被调用,用于构建组件的UI。
    由于StatelessWidget是不可变的,如果需要在用户操作或其他事件触发时更新UI,需要使用新的StatelessWidget实例来代替旧的组件。

  • StatefulWidget(有状态组件):
    StatefulWidget是一个可变的组件,它持有一个可变的状态对象(State),该状态对象可以在组件的生命周期内发生变化。
    StatefulWidget通常用于表示那些需要根据用户交互或其他事件而改变的UI元素。例如,表单输入、动态列表等。
    StatefulWidget的build方法会在每次状态改变时被调用,用于构建组件的UI。
    StatefulWidget通过与其关联的State对象来管理状态的变化,State对象可以在运行时修改。

入口页面

import 'dart:math';

import 'package:flutter/material.dart';

void main() {
  runApp(const SampleApp());
}

class SampleApp extends StatelessWidget{
  const SampleApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title:'Sample App',
      theme: ThemeData(
        primarySwatch: Colors.blue,//主题颜色
      ),
      home: const SampleAppPage(),
    );
  }

}

//页面
class SampleAppPage extends StatefulWidget{
  const SampleAppPage({super.key});

  @override
  State<SampleAppPage> createState() {
    return _SampleAppPageState();
  }
}

class _SampleAppPageState extends State<SampleAppPage>{

  String textShow = "你是猪";
  int clickTimes = 0;
  //点击触发事件
  void _onPressed(){
    clickTimes++;
    setState(() {
      textShow = "点击了$clickTimes";
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title:const Text('page app bar')
      ),
      body: Center(child: Text(textShow),),
      floatingActionButton: FloatingActionButton(
        onPressed: _onPressed,
        tooltip: 'update text',
        child: const Icon(Icons.update),
      ),
    );
  }

}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容