欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Flutter核心原則是什么-創(chuàng)新互聯(lián)

這篇文章主要介紹“Flutter核心原則是什么”,在日常操作中,相信很多人在Flutter核心原則是什么問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Flutter核心原則是什么”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

十年的和林格爾網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。營(yíng)銷(xiāo)型網(wǎng)站的優(yōu)勢(shì)是能夠根據(jù)用戶(hù)設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整和林格爾建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“和林格爾網(wǎng)站設(shè)計(jì)”,“和林格爾網(wǎng)站推廣”以來(lái),每個(gè)客戶(hù)項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

1. Flutter 是什么?

Flutter 是 Google 開(kāi)源的 UI 工具包,幫助開(kāi)發(fā)者通過(guò)一套代碼庫(kù)高效構(gòu)建多平臺(tái)精美應(yīng)用,支持移動(dòng)、Web ([early access][])、桌面和嵌入式平臺(tái)。

Flutter 旨在幫助開(kāi)發(fā)者創(chuàng)作媲美原生的高性能應(yīng)用,并遵從了各個(gè)平臺(tái)不同的滾動(dòng)行為、排版布局、圖標(biāo)樣式等。

這是一個(gè)名為 Gallery 的示例應(yīng)用, Gallery 是一個(gè)在安裝完 Flutter 并配置好環(huán)境后可以立即運(yùn)行的 Flutter 示例應(yīng)用集合。Shrine 有高質(zhì)量的滾動(dòng)圖片、交互式卡片、按鈕、下拉列表以及一個(gè)購(gòu)物車(chē)頁(yè)面。

開(kāi)始開(kāi)發(fā)之前無(wú)需移動(dòng)開(kāi)發(fā)經(jīng)驗(yàn)。應(yīng)用使用 Dart 開(kāi)發(fā),如果你曾使用過(guò) Java 或者 JavaScript 語(yǔ)言,那么 Dart 看上去會(huì)很熟悉。面向?qū)ο缶幊痰慕?jīng)驗(yàn)對(duì)開(kāi)發(fā)毫無(wú)疑問(wèn)會(huì)有幫助,但即便不是程序員也可以制作 Flutter 應(yīng)用!

2. 為什么使用 Flutter?

Flutter 的優(yōu)勢(shì)是什么?它能夠幫你:

  • 高效率

  • 在應(yīng)用運(yùn)行時(shí)嘗試修改代碼并重載(通過(guò)熱重載)

  • 修復(fù)崩潰并從應(yīng)用停止的地方開(kāi)始繼續(xù)調(diào)試

  • 利用單一代碼庫(kù)開(kāi)發(fā) iOS 與 Android 應(yīng)用

  • 即便在單一操作系統(tǒng)上,也可以通過(guò)使用現(xiàn)代、富有表現(xiàn)力的語(yǔ)言以及聲明式方法,寫(xiě)更少代碼做更多事

  • 原型與輕松迭代

  • 生成美觀、高度定制化的用戶(hù)體驗(yàn)

  • 受益于用 Flutter 框架構(gòu)建的豐富的 Material Design 以及 Cupertino (iOS 風(fēng)格) widget

  • 實(shí)現(xiàn)定制、美觀、品牌驅(qū)動(dòng)的設(shè)計(jì),不受 OEM widget 集合的限制

3. 核心原則

Flutter 包含一個(gè)現(xiàn)代響應(yīng)式框架,一個(gè) 2D 渲染引擎,現(xiàn)成的 widget 以及開(kāi)發(fā)工具。這些組件協(xié)同工作以幫助你設(shè)計(jì)、構(gòu)建、測(cè)試和調(diào)試應(yīng)用。所有這一切都圍繞幾個(gè)核心原則進(jìn)行組織。

3.1 一切皆 Widget

Widget 是 Flutter 應(yīng)用用戶(hù)界面的基本構(gòu)建單元,每個(gè) widget 都與最終的用戶(hù)界面的展示緊密相關(guān)。不同于其他框架和平臺(tái) —— 將視圖 (views)、視圖控制器 (view controllers)、布局 (layouts) 等其他屬性分開(kāi), Flutter 擁有統(tǒng)一的對(duì)象模型:widget。

一個(gè) widget 可以定義:

  • 一個(gè)結(jié)構(gòu)元素(比如一個(gè)按鈕或者菜單)

  • 一個(gè)風(fēng)格元素(比如一個(gè)字體或者配色方案)

  • 布局的一個(gè)方面(比如 padding)

  • 等等……

Widget 通過(guò)組合形成一個(gè)層次結(jié)構(gòu),每個(gè) widget 嵌套其中,從其父節(jié)點(diǎn)繼承屬性。Flutter 中沒(méi)有單獨(dú)的“application”對(duì)象,與之相對(duì)應(yīng)的功能由 root widgets 承擔(dān)。

你可以通過(guò)告訴框架將層次結(jié)構(gòu)中的一個(gè) widget 替換為另一個(gè)來(lái)響應(yīng)事件,如用戶(hù)交互。框架將會(huì)對(duì)比新舊 widget 并及時(shí)更新用戶(hù)界面。

3.1.1 組合大于繼承

Widgets 本身往往是由許多小的、具有單一用途的 widget 組成,它們組合在一起可以產(chǎn)生強(qiáng)大的效果。比如,Container 是一個(gè)常用的 widget,由負(fù)責(zé)布局、繪制、定位和尺寸的幾個(gè) widget 組成。具體來(lái)說(shuō),Container 是由 LimitedBox、ConstrainedBox、Align、Padding、 DecoratedBox 和 Transform widgets 組成的。你可以將這些與其它小而簡(jiǎn)單的 widgets 用新穎的方式組合,而不是子類(lèi)化 Container 以生成自定義效果。

類(lèi)層次結(jié)構(gòu)是淺而廣的,以支持盡可能多的組合。

你也可以通過(guò)組合其它 widgets 以達(dá)到控制一個(gè) widget 的布局。例如,為了居中一個(gè) widget,你可以把它包裹在一個(gè) Center widget 中。還有用于設(shè)置間距、對(duì)齊、行、列以及網(wǎng)格的 widgets,這些布局 widgets 本身并沒(méi)有視覺(jué)表現(xiàn)。反之,他們唯一的目的是在某些方面上控制另一個(gè) widget 的布局。要了解一個(gè) widget 以某種方式呈現(xiàn)的原因,查看其鄰近 widgets 通常很有幫助。

3.1.2 層次蛋糕非常美味

Flutter 框架由一系列層結(jié)構(gòu)組成,每一層都建立在前一層之上。

框架上層會(huì)比下層使用的更頻繁。有關(guān)組成 Flutter 層次框架的完整庫(kù)集可以參閱我們的 API 文檔。

這樣做的目的是為了幫助你用更少的代碼完成更多工作。例如,通過(guò)在 widgets 層組合基礎(chǔ) widgets 來(lái)構(gòu)建 Material 層,而 widgets 層本身則是通過(guò)對(duì)來(lái)自 Rendering 層的低層次對(duì)象組合而來(lái)。

這些層次為構(gòu)建應(yīng)用程序提供了許多選項(xiàng)。選擇一種自定義方法來(lái)釋放框架的全部表現(xiàn)力,或使用 widgets 層中的構(gòu)建塊,或混合搭配。你可以組合 Flutter 提供的現(xiàn)成 widgets 或使用 Flutter 團(tuán)隊(duì)在構(gòu)建框架時(shí)所使用的相同工具和技術(shù)來(lái)構(gòu)建你的自定義 widgets。

沒(méi)有任何內(nèi)容可以逃離你的視線(xiàn),因此可以在生產(chǎn)力上從高級(jí)別、統(tǒng)一的 widget 概念中獲益,且不會(huì)犧牲你想深入更底層時(shí)的能力。

3.2 構(gòu)建 widget

你可以通過(guò)完善 build() 函數(shù)來(lái)定義一個(gè) widget 擁有的特性,該函數(shù)返回一個(gè) widget 樹(shù)(或者層次結(jié)構(gòu))。該樹(shù)通過(guò)更具體的方式來(lái)表示用戶(hù)界面上的 widget 部分。例如,一個(gè) toolbar widget 可能會(huì)有一個(gè)返回一些 水平布局 文本 和 各種 按鈕 的構(gòu)建函數(shù)。框架會(huì)遞歸地去構(gòu)建這些 widget 直到達(dá)到最底層 完全具象的 widgets,然后將它們拼接成一棵樹(shù)。

一個(gè) widget 的構(gòu)建函數(shù)應(yīng)該沒(méi)有副作用。不論何時(shí)調(diào)用,widget 總應(yīng)該返回一顆新的 widgets 樹(shù),不論其之前返回了什么。框架會(huì)將先前構(gòu)建與當(dāng)前構(gòu)建仔細(xì)進(jìn)行比較,并確定需要對(duì)用戶(hù)界面做哪些修改。

這種自動(dòng)比較非常有效,可實(shí)現(xiàn)高性能的交互式應(yīng)用。構(gòu)建函數(shù)在設(shè)計(jì)上通過(guò)專(zhuān)注聲明 widget 的構(gòu)成,而不是處理更新用戶(hù)界面狀態(tài)的復(fù)雜性,來(lái)達(dá)到簡(jiǎn)化代碼的目的。

3.3 處理用戶(hù)交互

如果一個(gè) widget 的特性需要根據(jù)用戶(hù)交互或其他因素改變,那么這個(gè) widget 是有狀態(tài)的。例如,如果一個(gè) widget 包含一個(gè)隨用戶(hù)點(diǎn)擊按鈕而遞增的計(jì)數(shù)器,則計(jì)數(shù)器的值便是 widget 的狀態(tài)。當(dāng)該值更改時(shí),則需要重新構(gòu)建 widget 以更新 UI。

這些 widget 繼承自 StatefulWidget(而不是 StatelessWidget)并將它們可變的狀態(tài)存儲(chǔ)在 State 的一個(gè)子類(lèi)中。

不論何時(shí)你操作一個(gè) State 對(duì)象(例如,遞增計(jì)數(shù)器),你必須調(diào)用 setState() 方法來(lái)通知框架通過(guò)重新調(diào)用 State 的構(gòu)建函數(shù),以此達(dá)到更新用戶(hù)界面的目的。有關(guān)狀態(tài)管理的示例,可以查看隨著任何一個(gè)新 Flutter 項(xiàng)目生成的 MyApp 模版。

將狀態(tài)與 widgets 對(duì)象分開(kāi)可以讓其他 widgets 以相同的方式處理無(wú)狀態(tài)和有狀態(tài)的 widget,而不用擔(dān)心丟失狀態(tài)。不同于通過(guò)維持一個(gè)子節(jié)點(diǎn)來(lái)保留狀態(tài),父節(jié)點(diǎn)可以自由地創(chuàng)建子節(jié)點(diǎn)實(shí)例,而不會(huì)丟失子節(jié)點(diǎn)的持久狀態(tài)。框架會(huì)在適當(dāng)?shù)臅r(shí)候做完查找和重用現(xiàn)有狀態(tài)對(duì)象的所有工作。

到此,關(guān)于“Flutter核心原則是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

當(dāng)前標(biāo)題:Flutter核心原則是什么-創(chuàng)新互聯(lián)
當(dāng)前路徑:http://chinadenli.net/article4/dsjhie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化面包屑導(dǎo)航企業(yè)建站移動(dòng)網(wǎng)站建設(shè)網(wǎng)站設(shè)計(jì)公司自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)