欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

大前端時代搞定PC/Mac端開發(fā),我有絕招(收藏版)

 更新時間:2020年07月11日 11:29:14   作者:蕭文翰  
這篇文章主要介紹了大前端時代搞定PC/Mac端開發(fā),我有絕招,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

如果你是一位前端開發(fā)工程師,對“跨平臺”一詞應(yīng)該不會感到陌生。像常見的前端框架:比如React、Vue、Angular,它們可以做網(wǎng)頁端,也可以做移動端,但很少能做到跨PC、Mac端,也就是我們熟知的Windows、Linux以及macOS上的應(yīng)用程序。即使有,受限于JS的性能瓶頸,當有大量的科學計算需求時,則會略顯疲態(tài)。
有沒有一個理想的UI框架能夠通殺它們所有呢?答案是——Flutter。

Flutter的性能優(yōu)勢

做為一個通用的跨平臺的UI框架,F(xiàn)lutter在性能方面的突出表現(xiàn)是非常引人奪目的。拿Android舉例,一個安卓的原生APP在繪圖的時候,要先調(diào)用Android框架的Java代碼,然后再調(diào)用skia(C/C++)繪圖引擎代碼,最后生成的CPU或者gpu的指令,在設(shè)備上完成繪圖。而Flutter的APP在繪圖的時候,是先調(diào)用Flutter框架的Dart代碼,然后直接調(diào)用skia(C/C++)代碼。所以只要Flutter框架Dart代碼的效率可以媲美原生框架的Java代碼的時候,那么Flutter的性能就可以媲美原生APP。
而如React Native,它首先要調(diào)用框架本身的JavaScript代碼,然后再調(diào)用Android框架的Java代碼,然后調(diào)用skia,這比原生的App運行過程多出了一個步驟,所以它的這個性能肯定是不及原生的。
國內(nèi)知名的“閑魚”技術(shù)團隊對于Flutter在性能上逼近原生App的解釋如下:

1.預(yù)先(AOT)編譯,運行時直接執(zhí)行Native(arm)代碼;
2.必需的同Native通信(channel)是C++層次,性能好;
3.其線程模型中Dart代碼執(zhí)行(在UI TaskRunner),圖片下載(IO TaskRunner),真正的渲染(GPU TaskRunner),同平臺的通信等(Platform TaskRunner即Native概念下的主線程)是互相隔離的。透過將耗時的邏輯放入IO TaskRunner或新開Isolate(會在Dart線程池中執(zhí)行);GPU TaskRunner可以將幀數(shù)據(jù)提交給GPU時UI TaskRunner已在準備下一幀數(shù)據(jù)這種流水線的機制提高了渲染速度;
4.Flutter層面針對布局等的優(yōu)化:布局計算時單次樹走動即可完成;Relayout Boundary機制:如果Child 的size是固定的,那么不會因為Child的Relayout導致Parent ReLayout;Repaint Boundry機制:如果樹的某個子樹如果同樹的其他部分不同頻地重繪,那么RenderRepaintBoundary可以改善性能。
5.Skia團隊針對Flutter的優(yōu)化。
6.框架的布局優(yōu)化對上層開發(fā)透明。

如果你有一定的前端開發(fā)經(jīng)驗,特別是移動端的開發(fā)經(jīng)驗,或者深入探究過Flutter,上述內(nèi)容應(yīng)該不難理解。
如今,使用Flutter開發(fā)移動端App的教程鋪天蓋地,我來手把手教你如何使用Flutter搞定PC、Mac端開發(fā),從此徹底打通前端跨平臺。

PC端實戰(zhàn)

1. 準備工作

首先我們要確保Flutter開發(fā)環(huán)境準備就緒。有關(guān)搭建開發(fā)環(huán)境的步驟,可參閱:
https://flutter.cn/docs/get-started/install
此處不再贅述,我們重點關(guān)注下面的操作:
到今天為止,在Stable分支上的Flutter SDK可以設(shè)置啟用PC端開發(fā)的能力,但實際上是無法使用的。因此,我們需要將其切換到master分支上。切換的方法是在命令行窗口執(zhí)行下面的語句:

flutter channel master

或許也可以直接git方式切換,但我沒有嘗試,感興趣的朋友可以自行嘗試。
在回顯切換成功的提示后,記得執(zhí)行

flutter upgrade

升級到最新的SDK(包含Dart)版本。
另外,如果你使用的是Windows的話,還需要安裝Visual Studio開發(fā)軟件,并安裝Desktop development with C++的Workload(中文名為:工作負載)。如果是macOS,則無需安裝Visual Studio。

2. 啟用PC端開發(fā)支持

在命令行執(zhí)行

flutter config --enable-windows-desktop

稍等幾秒后即可完成。控制臺將如下輸出:

Setting "enable-windows-desktop" value to "true".
You may need to restart any open editors for them to read new settings.

成功啟用后,執(zhí)行

flutter devices

列出已連接的調(diào)試設(shè)備列表,首次執(zhí)行可能會花費一些時間下載必要的開發(fā)工具包。隨后,可以看到如下類似的輸出結(jié)果:

1 connected device:
Windows (desktop) • windows • windows-x64 • Microsoft Windows [Version 10.0.18363.900]

其他操作系統(tǒng)環(huán)境類似。
另外,我們也可以隨時執(zhí)行

flutter config

查看目前的配置。還可以隨時還原為默認設(shè)定。

Settings:
enable-windows-desktop: true

3. 創(chuàng)建項目

這一步無需多言,在相應(yīng)的目錄下執(zhí)行

flutter create [項目名]

即可。

4. 遷移項目

對于之前沒有啟用PC端開發(fā)支持的工程,或者需要遷移到PC、Mac端的工程,需要在項目根目錄下執(zhí)行

flutter create .

(注意最后的點)

5. 運行程序

這一步無需多言,進入項目根目錄,然后執(zhí)行

flutter run

即可看到運行結(jié)果。

好了,接下來就是實現(xiàn)具體業(yè)務(wù)的環(huán)節(jié)了。

到此這篇關(guān)于大前端時代搞定PC/Mac端開發(fā),我有絕招的文章就介紹到這了,更多相關(guān)大前端時代PC/Mac端開發(fā)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • git 多賬戶配置完整實現(xiàn)過程詳解

    git 多賬戶配置完整實現(xiàn)過程詳解

    這篇文章主要為大家介紹了git 多賬戶配置完整實現(xiàn)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • IDEA升級后Git拉取和推送的標簽消失的解決方法

    IDEA升級后Git拉取和推送的標簽消失的解決方法

    本文主要介紹了IDEA升級后Git拉取和推送的標簽消失的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-06-06
  • 301重定向代碼合集(iis,asp,php,asp.net,apache)

    301重定向代碼合集(iis,asp,php,asp.net,apache)

    腳本之家將SEO工作中所需要的301轉(zhuǎn)向代碼進行了整理,收藏并分享,以備查閱。
    2011-02-02
  • jQuery會死嗎?我為什么不用vue寫富文本

    jQuery會死嗎?我為什么不用vue寫富文本

    jQuery會死嗎?我為什么不用vue寫富文本,本文通過文字實例代碼相結(jié)合的形式給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05
  • git流水線(Pipeline)導致分支(Branch)無法合并問題及解決

    git流水線(Pipeline)導致分支(Branch)無法合并問題及解決

    這篇文章主要介紹了git流水線(Pipeline)導致分支(Branch)無法合并問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • mvn?打包報錯:no?compiler?is?provided?in?this?environment

    mvn?打包報錯:no?compiler?is?provided?in?this?environment

    這篇文章主要為大家介紹了mvn?打包報錯:no?compiler?is?provided?in?this?environment解決方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • Git 教程之安裝配置詳解

    Git 教程之安裝配置詳解

    本文主要介紹Git 安裝配置,這里對Linux,Windows,Mac平臺的安裝做了詳細介紹,有需要的朋友可以參考下
    2016-09-09
  • vscode使用git的配置教程

    vscode使用git的配置教程

    在vscode中使用Git可以幫助我們更方便地管理代碼,進行版本控制,下面通過本文給大家介紹vscode使用git的配置教程,感興趣的朋友一起看看吧
    2024-08-08
  • Git別名的使用

    Git別名的使用

    這篇文章主要介紹了Git別名的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • SonarQube實現(xiàn)自動化代碼掃描的安裝及使用集成方式

    SonarQube實現(xiàn)自動化代碼掃描的安裝及使用集成方式

    Sonar是一個用于代碼質(zhì)量管理的開源平臺,通過插件機制,Sonar可與第三方工具進行集成。將Sonar引入到代碼開發(fā)的過程中,提供靜態(tài)源代碼安全掃描能力,這無疑是安全左移的一次很好的嘗試和探索
    2021-10-10

最新評論