flutter能夠經過一套代碼運行在多個平臺上,包括移動,web,桌面,嵌入式,可是在 Web 平臺的支持還沒有達到 Beta 階段,請不要用在生產環節,在閱讀文檔時候,推薦你們閱讀flutter.cn ,這是和官方文檔同步的中文網站,減小學習的成本react
在flutter中,全部的內容都是widget,其是構成flutter項目的最小的單元
若是你在國內使用 Flutter,那麼你可能須要找一個與官方同步的可信的鏡像站點,幫助你的 Flutter 命令行工具到該鏡像站點下載其所需的資源。你須要爲此設置兩個環境變量:「PUB_HOSTED_URL」和「FLUTTER_STORAGE_BASE_URL」,而後再運行 Flutter 命令行工具。
下面全部的代碼和案例都是基於編輯器vs code進行編輯,使用該編輯器和編輯器插件以獲取更好的開發體驗。這些插件提供了代碼補全、代碼高亮、widget 輔助編輯的功能,以及爲項目的運行和調試提供支持等。
tip:在flutter項目中,能夠經過Flutter Doctor來檢查項目是否存在問題
經過vs code建立的項目目錄以下,咱們編寫的代碼主要放在lib文件夾下面,其中最重要就是lib(編寫程序代碼)和pubspec.yaml (至關於npm項目中的package.json,設置項目的配置項)
web
// package:這是表示系統內置的包
// 下面表示建立了一個具備 Material Design 風格的應用, Material 是一種移動端和網頁端通用的視覺設計語言, Flutter 提供了豐富的 Material 風格的 widgets。
import 'package:flutter/material.dart';
// 下面表示引進第三方包english_words
import 'package:english_words/english_words.dart';
// 主函數(main)使用了 (=>) 符號,這是 Dart 中單行函數或方法的簡寫,也就是箭頭函數,注意若是使用箭頭函數,只能寫一行。
void main() => runApp(MyApp());
// StatelessWidget表示無狀態的組件,表示該組件內全部的狀態就是不能變化,若是須要繼承有狀態的組件,則是StatefulWidget
class MyApp extends StatelessWidget {
// 只要調用setState方法,build就會從新加載,flutter框架的思想是來源於react
//注意一個widget主要工做是提供一個 build() 方法來描述如何根據其餘較低級別的 widgets 來顯示本身,能夠和react中的render函數做比較。
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Welcome to Flutter',
home: Scaffold(
appBar: AppBar(
title: Text('Welcome to Flutter'),
),
// Center widget 能夠將其子 widget 樹對齊到屏幕中心。
body: Center(
child: RandomWords()
),
),
);
}
}
class RandomWords extends StatefulWidget {
RandomWords({Key key}) : super(key: key);
@override
_RandomWordsState createState() => _RandomWordsState();
}
class _RandomWordsState extends State<RandomWords> {
@override
Widget build(BuildContext context) {
final wordPair = WordPair.random();
return Text(wordPair.asPascalCase);
}
}
複製代碼
掃描下面二維碼,有更多優質文章等你哦
npm