Uniapp、Flutter 和 React Native 全面對比

文章目錄

  • 前言
  • Uni-app、Flutter 和 React Native 跨平臺框架對比報告
    • 1. 性能對比
    • 2. 跨平臺能力
    • 3. 學習曲線
    • 4. 社區生態與第三方庫
    • 5. 原生能力擴展
    • 6. UI 渲染能力
    • 7. 企業支持與典型使用場景
    • 8. 開發效率與工具鏈


前言

將對 Uniapp、Flutter 和 React Native 進行全面對比,涵蓋以下八個方面:

  • 性能
  • 跨平臺能力(iOS/Android/Web)
  • 學習曲線
  • 社區生態和第三方庫
  • 原生能力擴展(調用原生模塊)
  • UI 渲染能力
  • 企業支持與使用場景
  • 開發效率與工具鏈

Uni-app、Flutter 和 React Native 跨平臺框架對比報告

簡介:Uni-app、Flutter 和 React Native 是當前主流的跨平臺移動應用開發框架,它們都允許開發者使用一套代碼構建多平臺應用,但實現方式各有不同。

  • Uni-app由國內 DCloud 公司推出,基于 Vue.js,支持 iOS、Android、Web 以至各大「小程序」平臺等多端發布。

  • Flutter是 Google 推出的 UI 工具包,使用 Dart 語言,采用自繪引擎渲染,追求接近原生的性能和一致的 UI 表現。

  • React Native由 Facebook(現 Meta)開源,使用 JavaScript 和 React 技術棧,運行時將組件轉換為原生控件,實現跨平臺的同時保持原生應用體驗。

本文將從 性能、跨平臺能力、學習曲線、社區生態、原生擴展、UI 渲染、企業應用、開發效率 八個維度對三者進行全面比較,并附上對比表格,幫助理解它們在實際使用中的優劣勢。

比較維度Uni-appFlutterReact Native
性能依賴 WebView 渲染或 Weex 原生渲染,滿足一般應用流暢度,但復雜圖形或高幀率場景下性能略遜;首屏加載速度受 Web 引擎初始化影響。基于 Dart AOT 編譯,自帶 Skia 引擎自繪 UI,性能接近原生應用,動畫和交互流暢;初始包體積較大,應用啟動相對稍慢但仍領先 RN。JavaScript 線程與原生 UI 線程分離,通過橋接通信,普通場景下性能接近原生;繁重計算或復雜動畫時可能出現卡頓,首次渲染耗時較長影響啟動速度。
跨平臺支持平臺覆蓋面最廣:一套代碼可編譯到 iOS、Android、H5(響應式 Web)以及微信/支付寶/字節跳動/QQ/京東等多個小程序平臺。不同平臺 UI 表現高度一致,真正做到“一處編寫,各處運行”。支持移動端 (Android/iOS)、Web 端和桌面端 (Windows、macOS、Linux) 等多平臺應用。自繪UI確保各平臺視覺一致,如需原生風格可使用 Cupertino/Material 組件庫。主要支持 iOS 和 Android 原生應用開發。可借助社區項目擴展至 Web(React Native Web)或桌面(Microsoft 推出的 RN Windows/macOS)。各平臺使用原生控件,默認遵循平臺設計規范,UI 風格因系統而異。
學習曲線**上手簡單:**采用大眾熟悉的 Vue.js 技術棧,對前端開發者非常友好,上手成本低。官方文檔和社區主要以中文為主,資料完備。**語言新穎:**需要學習 Dart 語言和 Flutter 框架的聲明式 UI 思維。雖然 Dart 易于學習,但團隊轉型成本存在。Flutter 官方文檔健全(有中英文版),學習曲線中等偏陡。**前端遷移平滑:**使用 JavaScript + JSX + CSS 開發,Web 前端工程師可快速上手。需熟悉 React 框架原理,理解組件生命周期等概念。官方文檔和社區資源豐富,多為英文資料。
社區生態**本土生態完善:**官方提供豐富組件和 API,擁有數千款插件的插件市場,常用功能幾乎都有現成方案。DCloud 聲稱已有 900萬+ 開發者使用,月活設備過十億。社區主要集中于國內,活躍度高。**快速成長:**由谷歌主導開源,全球社區發展迅速,插件包數量已達數萬級(pub.dev)。提供豐富的 UI 庫和工具,但相對于 RN 生態仍稍遜。遇到小眾問題時可參考資料略少,但生態正日趨成熟。**成熟龐大:**背靠 Facebook,多年發展積累了海量第三方庫和組件。NPM 上相關包非常豐富,涵蓋UI組件、狀態管理、導航等各方面。全球開發者社區活躍,經驗帖和解決方案易于找到。
原生擴展能力**封裝全面:**內置 HTML5+ 原生 API,可直接調用攝像頭、定位等設備能力,絕大部分需求無需原生開發。對少數特定需求,可從插件市場獲取或定制原生插件,通過 JavaScript 以 免原生改動 方式集成。如需自行開發插件,需要編寫 Android 和 iOS 原生代碼然后封裝供 JS 調用。**插件機制:**通過平臺通道(MethodChannel)與原生通信,官方和社區提供大量插件封裝了各類原生SDK。一般場景無需改寫原生代碼;若遇特殊功能,可按照官方規范編寫自定義平臺通道代碼進行擴展。Flutter 應用也可嵌入原生應用或嵌入原生控件,互操作性較好。**橋接原生:**通過 Native Modules 將原生功能暴露給 JS。社區已有眾多封裝好的原生模塊(攝像頭、地圖、推送等),直接使用即可。如果所需模塊缺失,則需用 Java/Kotlin 或 ObjC/Swift 編寫橋接代碼擴展。RN 可與現有原生工程集成,支持漸進式在原生App中加入RN頁面。
UI 渲染與界面**雙引擎渲染:**既可使用 Web 渲染(富靈活性,支持完整 CSS3),也可使用原生渲染(更高性能,但樣式能力有限)。默認組件風格中性統一,各平臺外觀一致。基于 Vue 組件模型,內置豐富UI組件(列表、表單、導航等)和各種小程序風格控件。復雜界面在 Web 模式下可借助 CSS 動畫實現,在原生模式下則需受限于其提供的組件能力。**自繪引擎:**Flutter 繪制UI不依賴原生控件,每個像素由Skia引擎直接渲染,能夠高度定制界面。內置 Material Design 和 Cupertino 兩套風格組件庫,亦有龐大的社區 Widget 庫支持多樣化設計。開發者可繪制復雜動畫、圖形特效,適合追求精美設計的應用。但UI代碼與邏輯高度結合,需要適應嵌套布局的編碼方式。**原生控件:**RN 將JSX描述的組件轉譯為對應平臺的原生UI元素顯示。因此界面表現與原生App一致,系統原生的滾動慣性、控件樣式、無障礙特性都可繼承。開發者也可使用CSS Flexbox進行布局,Web前端經驗可復用。缺點是高度自定義的UI可能需要編寫原生組件支持,復雜動畫需謹慎處理以避免因頻繁跨橋通信導致卡頓。
企業應用與場景典型場景:Uni-app因其多端統一和快速開發,被大量中小團隊用于電商、小型社交、企業內部工具等應用快速開發。國內大廠如華為、阿里、騰訊、抖音、美團、京東、快手、vivo 等也有使用 uni-app 開發部分業務(例如活動小程序、輕量級 App 等)。非常適合需要同步發布 App 和小程序的業務場景。高性能游戲、重度圖形應用則不在擅長范圍。典型場景:Flutter 以卓越的性能和一致的UI見長,受到各行業大型項目青睞。谷歌在多款產品中使用Flutter(如 Google Pay 等),阿里巴巴閑魚App、字節跳動部分應用、汽車廠商豐田的車載系統等也采用了Flutter。適合追求極致用戶體驗、復雜UI動畫,以及需要同時覆蓋移動/Web/桌面的平臺型項目。不擅長逐步集成到現有原生項目(通常是全新項目采用)。典型場景:React Native 因其成熟生態和低門檻,在互聯網公司廣泛用于電商、社交、資訊等領域的移動應用。Facebook自家應用(Facebook、Instagram)大量使用RN構建;Microsoft 也在 Office、Teams 等產品中采用RN跨平臺開發。適合已有 Web/React 團隊快速打造移動應用,以及需要在原生App中漸進增強部分功能的場景。對于需要原生性能的游戲、圖形密集應用則不建議使用RN。
開發效率與工具鏈高效集成:提供 HBuilderX 專用 IDE,支持可視化界面設計和真機調試,大幅提升開發效率。內置熱更新機制,小版本發布可在線升級而無須重新上架。支持條件編譯,可針對不同平臺定制差異代碼。項目構建可使用 DCloud 提供的云打包服務,無需本地配置原生編譯環境。敏捷開發:官方提供插件的 VS Code、Android Studio 等 IDE 支持,調試工具完善。擁有熱重載功能,修改代碼后狀態保持即刻刷新UI。Flutter DevTools 可進行UI檢查、性能分析等。構建發布通過 Flutter CLI 一鍵打包,各平臺CI/CD支持完善。初始配置較簡單,但需要安裝相應平臺SDK進行編譯。成熟工具鏈:可用任意文本編輯器開發,常配合 VS Code 等使用。提供快速刷新(Fast Refresh)實現實時預覽修改。調試時借助瀏覽器開發者工具或 Flipper 查看日志、網絡請求和界面元素。構建依賴原生項目配置(Gradle、Xcode),初學者需適應 Android/iOS 構建流程。通過 CodePush 等服務可動態下發 JS 更新。整體開發效率高,但在排查原生模塊問題時可能需要 native 調試技能。

1. 性能對比

在性能方面,Flutter通常表現最佳。它采用 AOT 編譯的 Dart 語言和自繪 UI 引擎,將應用界面繪制工作全部交由高效的 C++ Skia 引擎處理,避免了跨語言調度開銷,能夠提供接近原生應用的運行效率和流暢度。實際測試顯示,Flutter 在冷啟動時間和內存占用上都具備優勢:例如某些對比中,Flutter 冷啟動用時約 2 秒,顯著快于 React Native(因 RN 需初始化 JS 引擎和加載 bundle)。同時,由于 Flutter UI 在同一引擎中繪制,其動畫和過渡幀率也更穩定,適合高性能圖形界面需求。

React Native通過將 UI 描述轉換為原生控件來渲染,正常交互場景下性能也相當可觀,用戶體驗接近原生。它的劣勢在于架構上的跨線程通信成本:JS 邏輯運行在獨立引擎中,當界面頻繁更新或大量連續手勢動畫時,每一幀都需要 JS 和原生同步,造成一定延遲。因此在極限情況下(如復雜動畫、游戲場景),RN 相比 Flutter 或純原生可能出現掉幀。同時,React Native 應用的首次渲染耗時較長,需要等待 JS 引擎啟動和加載解析 JS 代碼,啟動速度往往慢于原生應用。Facebook 引入 Hermes JS 引擎及預編譯字節碼技術后有所改進,但啟動性能仍略遜于 Flutter。

Uni-app的性能取決于使用的渲染模式:如果采用 Webview 內核渲染(即普通 Vue 頁面),性能與移動端瀏覽器類似,對于一般頁面操作是足夠流暢的,但在大量 DOM 操作、復雜動畫時可能吃力。Uni-app 提供了原生渲染模式(以前基于 Weex,引擎升級稱為 uni-app x),在該模式下由 JS 驅動原生控件顯示,運行機制和 React Native 類似。原生渲染模式下,uni-app 的界面流暢度顯著提升,大部分用戶操作與原生無異。然而由于仍使用 JavaScript 作為邏輯層,其在高幀率連續動畫、頻繁通信的場景下性能不及 Flutter 的自繪引擎。總體而言,uni-app 經過優化可以滿足絕大多數業務應用的性能需求,但在性能要求極高的場景下(如 3D 動畫、復雜圖表、大型游戲)會稍顯不足。

需要注意的是,性能往往是和應用復雜度、開發效率相權衡的。Flutter 通過犧牲一定的靈活性(只能用 Dart 編寫界面)換取了頂尖性能,而 React Native 和 uni-app 則在保持前端開發便捷性的同時做了一定讓步。實際選擇時,應根據項目對性能的要求權衡利弊。例如,一個主要以內容展示為主的資訊、商城應用,使用 RN 或 uni-app 也能達到流暢體驗;而需要復雜特效和高并發動畫的場景,Flutter 更能勝任。

2. 跨平臺能力

Uni-app在跨平臺覆蓋廣度上優勢明顯。它不僅支持常規的 iOS/Android 雙端,還支持直接發布為各種小程序(微信、支付寶、抖音、百度等)以及 H5 網頁。這意味著使用 uni-app 可同時觸達 App Store、各大安卓應用商店,以及微信等超級App內的小程序用戶,一套代碼多處運行,最大限度地復用了開發成果。更難得的是,uni-app 能保證各平臺界面和行為的一致性:開發者通常只需編寫一套 Vue 組件和樣式,uni-app 會針對不同平臺封裝差異,呈現出盡可能一致的UI體驗。這對追求統一品牌風格的團隊非常有利。例如,許多中國開發者傾向于在 Android 和 iOS 上都采用中性偏 iOS 風格的設計,uni-app 的組件庫正是遵循這一思路,讓用戶無論使用哪種設備,界面都熟悉一致。

Flutter最初專注移動端,如今已發展為真正的“全平臺”框架。Flutter 官方支持將應用部署到Android、iOS、Web、Windows、macOS、Linux六大平臺。開發者通過 Flutter 可以從移動端起步,逐步擴展到網頁和桌面程序,而不用更換技術棧。這種跨平臺擴展性對于需要覆蓋多終端的產品(例如同時提供手機App、Web管理后臺、桌面客戶端的應用)非常有吸引力。值得注意的是,Flutter 在不同平臺上共享邏輯和 UI 實現,從而保證了一致的用戶界面和操作體驗。這既是優點也是選擇:如果希望應用在 iOS 上看起來遵循 Cupertino 設計規范、在 Android 上符合 Material 設計規范,Flutter 提供了相應組件但需要編寫判別邏輯;反之,如果希望完全統一風格,Flutter 的自繪引擎可以做到像素級一致。總的來說,Flutter 提供了**“一套代碼庫,部署多平臺”**的可能性,適合希望盡量共用代碼、減少多端維護成本的團隊。

React Native在跨平臺能力上相對聚焦于移動端原生應用,即 iOS 和 Android 兩個平臺。它的核心目標就是“一次學習,隨處編寫”(Learn once, write anywhere)——強調掌握 React 技術后,可以用同樣思路開發不同平臺,但并非完全無需平臺差異處理。實際上 RN 默認情況下一份代碼就能運行于雙端,但為了獲得更好的用戶體驗,開發者經常會針對 iOS/Android 做一些差異調整(例如使用 Platform 模塊判斷平臺加載不同樣式,或為 Android 添加返回鍵處理等)。在 Web 領域,雖然沒有官方的 React Native Web 項目,但社區提供了 React Native Web 庫,實現將 RN 組件映射為 Web DOM 元素,從而部分復用 RN 代碼在瀏覽器運行。類似地,微軟維護了 React Native Windows 和 React Native macOS 項目,使 RN 可以構建 Windows UWP 應用和 macOS 桌面應用。然而,這些擴展方案往往需要額外學習和維護成本。整體來說,如果專注于手機App,RN 能方便地同時支持 iOS/Android;若需要進一步擴展到網頁或桌面,需要結合其他框架,開發體驗和一致性不如 Flutter 那樣“一體化”。

3. 學習曲線

對于大部分前端開發者而言,Uni-app的學習成本是最低的。它基于大眾熟悉的 Vue.js 框架編寫應用,語法和開發模式對有 Web 開發經驗的人非常友好。HTML+CSS+JavaScript 的知識即可直接應用于 uni-app 開發,加之 uni-app 封裝了統一的組件和 API,因此開發者幾乎不用關心不同平臺的差異,實現“所見即所得”的開發體驗。此外,uni-app 官方有詳盡的中文文檔和案例教程,新手可以跟隨教程快速上手。綜合來看,如果團隊里大多是擅長 Vue/前端的工程師,那么采用 uni-app 幾乎沒有語言門檻,學習曲線非常平緩。正如官方所說:“uni-app 沒有附加專有技術,全部使用大眾技術”,因此也降低了后續招聘和協作的難度。

Flutter的學習曲線相對陡峭一些,因為需要掌握一門全新的編程語言 Dart 以及 Flutter 特有的 UI 開發范式。Dart 語言本身偏向靜態強類型,語法與 Java、Kotlin 等相似,上手并不算困難;主要的轉變在于 UI 構建思想——Flutter 使用聲明式的方式通過代碼來構建界面,沒有傳統前端的 HTML 模板和 CSS,需要開發者習慣將 UI 抽象為組件對象、通過組合和屬性來布局樣式。這種編碼風格最初可能讓習慣于分離 HTML/CSS 的前端感到不適,但一旦掌握 Flutter 的 widget 概念和布局模型,就能體會到其高效之處。另外,Flutter 文檔健全、示例豐富,社區也整理了很多學習資料,對自學很有幫助。需要注意的是,如果團隊之前完全沒有 Dart/Flutter 經驗,那么切換到 Flutter 可能需要一段適應期和訓練成本;在評估技術選型時要考慮這點。總的來說,學習Flutter需要一定投入,但回報是掌握了一套功能強大的跨平臺技能。

React Native在學習門檻上介于兩者之間。它使用 JavaScript 語言,并遵循 React 框架的開發模式,這對熟悉 Web 前端或 React 開發的工程師來說非常容易接受。JSX 語法在 RN 中用來描述界面,與瀏覽器端 React 類似,只是最終渲染目標變成了移動原生控件。開發者需要學習 React Native 提供的內置組件(如 <View><Text> 等,它們對應原生的 UIView、TextView 等)和一些特定的 API(如 StyleSheet、Flexbox 布局、設備權限模塊等),但整體概念和 React Web 開發差別不大。因此有 React/前端背景的團隊可以平滑過渡到 RN 開發。另一方面,純原生背景的開發者可能需要補上一些 JavaScript 和 React 的知識。RN 官方文檔比較完善,社區博客、教程也非常豐富。需要注意的是,RN 隱含要求掌握一定原生開發基礎,因為有時候需要定位原生層面的錯誤或進行模塊集成。總的來說,React Native 對前端工程師十分友好,學習曲線相對平坦;但對沒有前端經驗的原生工程師而言,反而需要學習前端技術,這取決于團隊構成。

4. 社區生態與第三方庫

在社區和生態系統方面,React Native 擁有最為成熟龐大的生態圈。作為問世較早的跨平臺框架,RN 積累了海量的第三方庫、UI組件和工具。從UI框架(如 React Native Elements、NativeBase)到狀態管理(Redux/MobX)、導航路由(React Navigation)、設備API封裝(相機、地理位置、通知等插件),RN 生態一應俱全。幾乎開發移動應用所需的功能,在 NPM 上都能找到對應的 RN 模塊。并且由于 RN 背后有 Facebook/Meta 的長期支持和推廣,全球開發者社區規模龐大,活躍度很高。無論是 GitHub 上的開源庫還是各種技術論壇,都能找到 RN 相關的經驗分享。當遇到問題時,Stack Overflow 和各技術群中通常已有解決方案。因此,選擇 React Native 往往意味著可以站在豐富生態的肩膀上快速構建應用。不過也存在生態過于繁雜的問題:部分第三方庫質量參差不齊、更新不及時,選擇時需要考察成熟度。

Flutter的生態在近幾年增長飛速,但相對 RN 仍略顯年輕。Flutter 從2018年發布正式版以來,靠著優秀的性能和 Google 力推迅速流行,社區貢獻了大量插件包。目前官方的包管理倉庫(pub.dev)上已有數萬個 Flutter/Dart 包,涵蓋各類功能。從 Firebase 集成、地圖、支付,到各種 UI 控件庫、動畫特效庫,Flutter 插件生態逐漸豐富,能夠滿足常見開發需求。同時,Flutter 官方也精選了一批高質量插件(Flutter Favorite),提升了生態的可靠性。值得一提的是,Flutter 在國內社區也發展迅猛,出現了許多中文插件文檔、本土化組件庫。然而,相比 RN 的沉淀,Flutter 某些領域的庫仍稍顯薄弱,遇到疑難問題時可參考的資料略少。此外,Flutter 版本迭代較快,早期一些插件可能不兼容新版本,需要社區及時升級。總體而言,Flutter 生態正處于擴張期,已經能基本滿足需求,但在深度和廣度上還在追趕 RN 生態。

Uni-app的生態具有鮮明的中國特色。由于其定位是“一套代碼,多端覆蓋”,官方投入很大精力提供內置能力插件市場支持。DCloud 官方自帶了豐富的基礎組件和周邊工具(如地圖、聊天、推送等常用 SDK 也通過封裝以插件形式提供),使開發者即使不用第三方庫也能完成大部分應用功能。此外,uni-app 官方運營著一個插件市場,上面匯聚了社區開發的各類插件,號稱已有數千款插件,上至 UI 組件庫,下至各平臺原生 SDK 封裝應有盡有。對于國內開發者常用的服務(如微信登錄、支付寶支付、各大地圖SDK等),通常能在插件市場找到現成支持,這一點比 RN/Flutter 自行找庫更方便。由于 DCloud 官方對插件市場的管控,插件質量相對有保證,集成也很方便(通過 HBuilderX 一鍵導入)。社區方面,uni-app 用戶主要集中在國內,官方論壇和掘金、CSDN 等平臺上有不少經驗分享,但國際知名度相對有限。因此對于需要國內業務支持的場景,uni-app 生態完備度并不遜色;但如果涉及海外服務或特別新穎的技術,可能相應插件支持不如 RN/Flutter 全球生態那么迅速推出。

5. 原生能力擴展

不同跨平臺框架在調用原生設備功能、擴展第三方 SDK 上有各自方案和難易程度。

React Native通過Native Module機制實現原生擴展。當 RN 遇到框架未提供的原生功能(比如某手機傳感器數據)時,可以編寫對應平臺的原生模塊并暴露給 JS 使用。很多常用能力社區已經實現了封裝,如相機(react-native-camera等)、定位、藍牙、文件系統等,可直接安裝使用。然而如果遇到較新的原生SDK或非常特殊的功能,需要開發者掌握一定原生開發知識,使用 Java/Kotlin(Android)或 Obj-C/Swift(iOS)編寫模塊代碼,然后通過 ReactPackage 注冊給 RN。RN 新架構引入了 JSI(JavaScript Interface),進一步提高了 JS 與原生交互的性能和靈活性,但編寫原生擴展模塊的本質要求不變。因此,RN 的原生擴展能力強大但依賴原生技能:有成熟插件時集成很方便,缺少時就需要自行開發,或尋求社區支持。好在 RN 用戶群體大,很多第三方 SDK(如各社交登錄、支付)官方或社區都提供 RN 版SDK,大幅減少了自己動手的需求。

Flutter提供了Platform Channels(平臺通道)機制與原生交互。Flutter 應用可以通過 MethodChannel 調用原生平臺的代碼,原生側通過 DartMessenger 收發消息。這種機制封裝得較簡潔:在 Dart 側調用類似同步方法即可觸發原生代碼執行,返回結果也能傳回 Dart 層。因此編寫 Flutter 插件通常只需在 Dart 定義接口,并分別在 iOS 和 Android 實現對應功能。Flutter 官方和社區已經提供了大量插件涵蓋常用原生功能,如相機、傳感器、支付、地圖等。如果需要自定義擴展,新建一個 Plugin 工程,按照模板編寫即可,Android 可選用 Java/Kotlin,iOS 用 Obj-C/Swift 實現。在大多數場景下,開發者可以不修改原生工程直接通過引入插件解決問題。相比 RN,Flutter 插件的一個優點是和應用工程解耦——插件作為獨立package,通過 pubspec.yaml 引入,編譯時自動合并,不需要手工鏈接庫文件。這降低了集成出錯的可能性。需要注意的是,雖然 Flutter 大部分功能都自帶或插件化,但在某些復雜場景下仍需要原生支持,比如整合已有原生應用、使用系統特定 API 等。此時就得深入原生開發,不過這種情況相對少數。

Uni-app非常強調讓前端開發者“無需懂原生”也能完成開發。為此,它在架構上做了大量封裝工作:提供統一的 JS API 操作原生功能(如 uni.scanCode 調用攝像頭掃碼、uni.navigateTo跳轉原生頁面等),這些 API 底層由 DCloud 的 HTML5+ 引擎實現,與各平臺原生能力對接。因此開發者調用這些 API 就像使用瀏覽器 DOM 接口一樣簡單。如果遇到 uni-app 沒有覆蓋的特殊能力,有兩個途徑:一是看看插件市場是否已有對應插件,可以直接引入并通過 JS 接口使用;二是自行開發原生插件。uni-app 插件開發需要使用 DCloud 提供的擴展規范,用原生語言實現接口然后封裝給 JS 調用,這部分工作和 RN/Flutter 編寫原生模塊類似,但 DCloud 文檔提供了一定腳手架支持。據官方介紹,即使不會原生開發的前端,也可以通過插件市場找人定制插件,然后自己用 JS 集成,整個過程不需要修改原生工程,仍可使用云端打包完成應用。這種模式降低了前端調用原生的門檻。不過如果團隊本身有原生能力,uni-app 插件開發也并不復雜,可以實現非常緊密的原生融合(例如在 uni-app 中嵌入原生控件等等)。總的來說,uni-app 對常用原生功能提供了開箱即用的封裝,對于非常規需求也留有擴展途徑,其目標是讓開發者盡量少關注原生細節。

6. UI 渲染能力

在 UI 渲染機制上,三種框架采用了不同策略,對界面效果和定制能力都有影響。

Flutter選擇了完全自繪制的方案。它拋棄了系統原生控件,轉而使用自己的渲染引擎(Skia)在一塊畫布(Canvas)上繪制所有界面元素。這樣的好處是像素級的可控性:開發者可以定制任何形狀、動畫和特效,Flutter 都能精確呈現且跨平臺外觀一致。Flutter 提供了豐富的基礎 Widget,比如文本、按鈕、列表、動畫組件等,這些 Widget 都由 Flutter 繪制,因而風格統一。此外還有 Cupertino 和 Material 兩套官方設計風格組件,方便在需要時體現平臺特有的UI風格(例如 iOS 風格開關、安卓風格菜單)。Flutter UI 的另一個優點是可以實現復雜的定制,比如漸變、陰影、裁剪、物理模擬動畫等,這在原生控件體系下往往很難或需要額外的 GPU 繪制支持。開發者甚至可以直接使用 CustomPainter 繪制低層圖形,實現游戲界面、數據可視化等炫酷效果。因此對于高要求的UI/UX設計,Flutter 如魚得水,能逼近設計稿逐像素還原。不過代價是 UI 代碼編寫方式與傳統前端截然不同:Flutter 通過代碼嵌套來構建UI結構,沒有樣式表和 DOM 概念,需要一定適應。此外,由于脫離了原生控件,Flutter 應用初始包會捆綁引擎導致體積增大(hello world 體積約 5-8 MB 以上)。如果項目非常注重安裝包大小,需考慮這一點。

React Native則采用原生控件渲染模式。RN 中定義的 <View><Text><Button> 等都會映射為運行時的原生 UI 元素(比如 iOS 中的 UIView/UILabel,Android 中的 View/TextView 等)。因此,RN 應用的界面本質上是系統控件在顯示,用戶可獲得與原生應用一致的觀感和操作響應。例如滾動列表會用到原生的 UITableView/RecyclerView,確保性能和手勢體驗接近原生;文本輸入框也是直接調用原生 UITextField/EditText,鍵盤交互完全一致。這種方式的優勢是:一方面原生組件經過系統優化,性能和無障礙支持有保障;另一方面,應用能夠自動遵循平臺的 UI 規范(例如 Android 上切換深色模式時 RN 應用中的原生控件也會響應樣式變化)。對于追求平臺原汁原味體驗的應用,RN 無疑是較好的選擇。同時 RN 也允許一定程度的樣式定制,通過類似 CSS 的樣式表給原生控件設置顏色、布局、動畫等。不過 RN UI 的局限在于:如果想實現超出原生控件能力范圍的界面效果(比如一些高度定制的特效按鈕、3D 動畫),就需要借助原生 API 或引入額外的原生繪圖組件(如 GLSurfaceView 或 WebView)來實現,因為 JS 層無法直接操縱像素繪制。此外,RN 由于涉及 JS 和原生的頻繁通信,對一些復雜動畫場景可能需要特殊優化(如使用 InteractionManager、LayoutAnimation 或借助 Reanimated 等庫)以避免掉幀。總結來說,RN 提供的 UI 能力足以覆蓋絕大多數常規 App 界面需求,以原生控件的穩定性換取了一定的個性化自由度。對跨平臺框架來說,這是一種務實折中。

Uni-app的 UI 渲染涉及兩套引擎:Web 渲染原生渲染。在 Web 渲染模式下(也是 uni-app 默認模式),應用界面通過嵌入的 WebView 來呈現,相當于運行一個移動網頁。這意味著可以使用完整的 HTML/CSS/JS 來構建界面,CSS3 動畫、媒體查詢等都可用,設計上非常靈活。很多成熟的前端 UI 庫(如 Mint UI、Vant 等)也可直接引入使用。不過 Web 渲染受制于 WebView 性能,對于復雜界面可能性能遜于原生控件。此外各手機的 WebView 內核版本不一,可能出現樣式兼容問題,需要調試適配。為了解決性能問題,uni-app 提供了原生渲染的方案,即 nvue 頁面(基于改進的 Weex 引擎)。在 nvue 頁面中,Uni-app 會將 Vue 代碼通過 Weex 轉換為原生組件進行渲染,這類似于 RN 的工作方式。nvue 模式下沒有完整的 HTML 標簽體系,而是一套有限的組件和樣式,可以使用 flex 布局等基礎樣式,但不支持所有 CSS 選擇器。通過這種方式,uni-app 可以在關鍵頁面獲得接近原生的性能和體驗,同時在非關鍵頁面仍使用 Web 方式開發以提高效率。換句話說,uni-app 允許靈活地按需調整渲染引擎:追求性能的頁面用原生模式,追求豐富樣式的頁面用 Web模式。在UI組件豐富度上,uni-app 官方提供了一系列基礎組件(文本、圖片、列表、輸入框、彈窗等),基本涵蓋日常需求;同時社區也有一些流行的 uni-app UI 庫,可以快速搭建美觀界面。uni-app 默認UI風格中性且高度跨端統一,這對保證多端一致的用戶體驗很有幫助。如果需要針對某個平臺定制樣式,uni-app 也支持使用條件編譯或平臺判斷進行樣式調整。總的來看,uni-app 在 UI 渲染上提供了靈活與性能之間的平衡選擇:開發者可以根據場景決定采用哪種渲染路徑,以達到既好看又流暢的效果。

7. 企業支持與典型使用場景

Flutter自發布以來便受到眾多知名企業的關注和采用。在國際上,Google 投入大量資源推廣 Flutter,自己也在 Ads、Google Pay 等產品中使用該框架構建跨平臺界面。除了 Google 外,汽車行業的豐田(Toyota)將 Flutter 用于車載多媒體系統,展現了 Flutter 在嵌入式平臺的潛力。在國內,Flutter 同樣獲得青睞:阿里巴巴的閑魚二手交易 App 大規模使用 Flutter 技術重構,取得了運行性能和開發效率的平衡;字節跳動也曾在今日頭條等產品中嘗試 Flutter 以統一 Android/iOS 界面;騰訊將 Flutter 用于部分業務線的創新項目(如學堂在線 App)。根據統計,截至 2023 年已有超過 50 萬個應用使用 Flutter 開發。這些成功案例證明了 Flutter 足以支撐大規模、嚴苛性能要求的應用場景。Flutter 的典型適用業務包括:注重 UI 設計一致性的品牌應用(如電商、社交、內容類需要精致界面的 App),對性能要求高的交互式應用(如需要復雜動畫特效的應用),以及希望一套代碼覆蓋移動/Web/桌面的產品(如互聯網平臺類應用、創業公司 MVP 產品等)。同時,由于 Flutter 框架本身較新,大廠在導入時也經歷了一些磨合,如包大小和與現有原生模塊集成方面曾遇挑戰。但隨著技術迭代,這些問題逐步解決,Flutter 已被證明能夠滿足企業級應用需求,是跨平臺開發的一支重要力量。

React Native作為較成熟的框架,早年就在眾多大型應用中得到了驗證。首先它的創作者 Facebook(Meta)率先在自家 App 中使用 RN:例如 Facebook 主應用的某些模塊、Instagram 很早就部分采用了 RN 重寫,以實現 iOS/Android 統一的功能;Facebook 的廣告管理工具、Marketplace 商城等則幾乎完全用 RN 搭建。這些應用擁有億級用戶,RN 在其中穩定運行,可見其可靠性。微軟公司也是 RN 的積極擁抱者,Office 移動版應用和簡化版 Outlook、Microsoft Teams 部分功能由 RN 實現,以便共享桌面端 React 組件邏輯。此外,硅谷不少知名公司如 Airbnb、Uber Eats、Discord 等都曾使用 RN 開發產品或原型。雖然 Airbnb 后來因為維護多端三套代碼成本高而放棄 RN,但很多公司仍在特定項目中使用 RN 作為跨平臺方案。國內方面,早期美團、滴滴等公司也對 RN 展開過探索,將其嵌入現有原生應用以提高部分模塊開發效率。目前 RN 最適合的場景包括:需要快速上線的產品(利用 RN 熱更新和快速開發特性,加速迭代);技術棧偏前端的團隊(有 Web/JS 開發背景,希望復用技能造移動App);以及需要在現有原生App中增加跨平臺模塊的情況(RN 可無縫嵌入原生,漸進式改造)。典型業務如電商購物類應用(性能要求中等,更關注多平臺統一運營)、社交類應用(需要頻繁迭代新功能)和企業內部工具(追求開發效率)。需要避免的是那些極度追求性能和原生體驗的場景,例如大型 3D 游戲、高幀率圖形應用,RN 并非最佳選擇。

Uni-app因為其獨特的小程序+App 多端覆蓋優勢,在國內互聯網創業團隊和中小型項目中備受歡迎。許多公司會選用 uni-app 來同時產出 iOS/Android App 和微信小程序,以最低成本拓展用戶觸達渠道。例如一些新創的電商平臺,用 uni-app 開發商家 App 的同時,直接生成微信小程序作為流量入口,從而共享業務邏輯,降低開發成本。Uni-app 的快速開發特性也非常適合各類運營活動、營銷工具的開發——這類項目生命周期短、要求上線快、覆蓋渠道廣,用 uni-app 做可謂事半功倍。根據官方披露,包括華為、阿里、騰訊、字節、美團、京東等頭部企業內部都有使用 uni-app 的案例。這些大廠通常會將 uni-app 用在一些對性能要求沒那么苛刻但需要多端統一的業務上,例如微信小程序和 App 需要同步提供的服務、內部管理系統的移動端等等。一些手機廠商(如華為)的快應用生態中,也出現了 uni-app 構建的應用。總的來說,uni-app 擅長的領域是中小型應用和多端小程序:如信息展示類應用、生活服務類App、企業OA/CRM工具、輕社區或資訊類產品等。在這些場景下,uni-app 能大幅提升開發效率。一旦涉及特別復雜的客戶端邏輯或重度原生交互,比如需要大量原生性能優化的應用,團隊可能會考慮其它方案或使用 uni-app x 這樣的增強版來應對。

8. 開發效率與工具鏈

在開發效率和工具支持方面,三種框架各有亮點:

Uni-app致力于降低跨平臺開發門檻,其官方提供的 HBuilderX IDE 專為 uni-app 優化。HBuilderX 集成了項目創建、真機預覽、調試、云打包等一系列功能,讓開發者幾乎無需配置繁瑣的環境即可開始編碼。比如,開發者可以在 HBuilderX 中設計頁面界面(支持拖拽 UI 組件進行可視化布局),一鍵運行到模擬器或手機預覽修改效果。調試上,HBuilderX 支持斷點調試 JS 代碼,并提供類似瀏覽器 DevTools 的調試窗口,可以查看日志、檢查元素樣式等。在真機聯調時,還可以通過內置的日志查看器、元素檢查工具定位問題。熱更新也是 uni-app 開發效率的一大利器:通過 DCloud 提供的機制,開發者可以在不重新發布應用的情況下,將 JS 代碼和資源下發更新(類似于RN的CodePush),這對于頻繁更新的小程序或修復緊急問題非常有幫助。此外,uni-app 項目如果需要打包原生 App,開發者可以選擇使用 DCloud 云打包服務:無需本地安裝 Android Studio/Xcode,只要把工程上傳云端即可生成 APK/IPA。這對缺乏原生環境或 Mac 機器的團隊來說十分便利。當然,也可以選擇離線打包,自行配置環境更靈活。通過這些工具鏈支持,uni-app 實現了“傻瓜式”的跨平臺開發體驗,專注業務邏輯即可,大大提升了開發效率。在多人協作和持續集成方面,uni-app 項目本質是前端工程,可以很容易地納入 git 等版本管理和自動化部署流程。

Flutter在工具鏈和開發者體驗上也廣受好評。首先,Flutter 提供了狀態熱重載(Stateful Hot Reload)功能,這是其標志性的開發體驗提升。當開發者修改 Dart 代碼后,保存文件即可讓應用幾乎即時刷新 UI,并保持之前的狀態(例如頁面滾動位置等),無需重新啟動應用。這個特性極大地縮短了調試 UI 的反饋周期,使得 Flutter 開發被形容為“所改即所得”。IDE 支持方面,Flutter 官方推出了 Android Studio/IntelliJ 和 VS Code 插件,提供豐富的快捷功能:如 Widget 樹結構大綱、自動補全、代碼模板、性能 Overlay 顯示等。Flutter 還自帶一套 DevTools,包含 Widget 樹檢查、Repaint Rainbow(重繪調試)、內存和 CPU 性能分析等專業調試工具,方便開發者對應用進行優化。在項目構建發布上,Flutter 使用統一的 flutter 命令管理,從依賴獲取(flutter pub get)到不同平臺構建(flutter build apk/ios/web 等)一應俱全,一條命令即可產出對應平臺應用。由于 Flutter 工程實際上包含了各平臺的項目結構(Android 的 Gradle 工程、iOS 的 Xcode 工程),因此它也能很好地融入現有 CI/CD 流水線。另外值得一提的是,Flutter 社區還提供了許多開發效率工具,例如 Flutter SDK Manager、熱重載保活插件、代碼生成工具(json 序列化、路由生成)等,進一步加快開發。總體來看,Flutter 在開發體驗上的投入使其雖然學習稍有門檻,但開發效率并不遜色。很多開發者反饋,用 Flutter 實現界面的速度甚至快于原生開發,因為它的熱重載和布局調試體驗極佳。

React Native的開發工具鏈則更貼近 Web 前端的習慣。RN 項目通常由 Metro 構建工具運行一個開發服務器,負責打包 JS Bundle 并支持熱更新。在開發模式下,RN 應用可以連接到 Metro 服務器,實現 Fast Refresh(快速刷新):保存代碼后幾秒內,即可在模擬器/真機上看到界面變化,部分狀態還能保持不丟失。這種反饋速度雖然比 Flutter 熱重載略遜一籌,但相比完全重啟仍提高了許多效率。調試方面,React Native 提供了多種途徑:常用的是Chrome DevTools調試,把應用 JS 線程橋接到 Chrome 瀏覽器中,利用瀏覽器的控制臺、斷點調試來排錯。另外 Facebook 開源了 Flipper 調試工具,專門用于 RN 應用,可查看應用的 UI 元素樹、性能日志、網絡請求、數據庫內容等,甚至還能執行 React DevTools 檢查 React 組件狀態,對于大型應用的調試非常有用。RN 支持直接在設備上搖一搖打開一個開發者菜單,從中可以快捷訪問 debug 選項(如在設備上啟用元素檢查、性能監視等)。在編輯器支持上,因為 RN 本質是 JS 項目,所以常用 VS Code、WebStorm 等前端IDE都有良好支持,代碼補全、Lint 檢查、格式化都很方便。構建發布方面,RN 項目最終需要集成進原生工程進行打包。因此一個純 RN 項目初始化時就包含 android 和 ios 兩個子工程(Gradle 和 Xcode),發布時需分別在 Xcode 和 Android Studio 中打包出包。這點和 Flutter 類似。但 RN 也有 Expo 等工具,可簡化構建流程、提供托管的構建服務,適合不愿深度配置原生環境的開發者。總的來說,RN 的開發效率體現在前端化的敏捷體驗,同時保留了一定對原生的掌控。在多人協作時,前端、原生工程師都能各取所需地配合開發,這讓 RN 成為企業漸進式采用跨平臺技術的一個利器。

總結:綜上所述,Uni-app、Flutter 和 React Native 各有優劣,適用于不同的團隊背景和項目需求。如果團隊以前端技術棧為主,追求多端統一發布和開發快捷,uni-app 會是一個穩妥選擇,它降低了學習成本并覆蓋了豐富的平臺。但需考慮高性能場景下的局限。若項目對性能和 UI 體驗要求極高,希望打造精致流暢的用戶界面,同時計劃一套代碼長遠地運行在移動、Web、桌面多端,Flutter 是一個值得投資的方案,前期學習投入換來的是后期在各端一致的卓越體驗。而 React Native 作為一種折中方案,在需要快速產出移動應用、并且團隊有 Web/React 經驗的情況下表現出色。特別是已有原生 App 想部分引入跨平臺模塊時,RN 的漸進集成模式非常靈活。選擇框架時,應綜合考慮項目性質、團隊技能儲備、性能指標和長期維護成本等因素。合理利用上述比較維度,相信可以為您的項目選出最契合的跨平臺開發框架。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/83577.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/83577.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/83577.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JAVA SE 多線程(上)

文章目錄 &#x1f4d5;1. Thread類及常見方法??1.1 創建線程??1.2 Thread 的常見構造方法??1.3 Thread 的幾個常見屬性??1.4 啟動一個線程---start()??1.5 中斷一個線程---interrupt()??1.6 等待一個線程---join()??1.7 獲取當前線程引用??1.8 休眠當前線程 &…

Linux云計算訓練營筆記day10(MySQL數據庫)

Linux云計算訓練營筆記day10&#xff08;MySQL數據庫&#xff09; 目錄 Linux云計算訓練營筆記day10&#xff08;MySQL數據庫&#xff09;ifnull別名聚合函數group byHAVING 子查詢關聯查詢 ifnull 在DQL語句中可以使用函數或表達式 函數 IFNULL(arg1,arg2) 如果arg1為NULL,函…

上位機知識篇---流式Web服務器模式的實現

文章目錄 前言 前言 本文簡單介紹了流式Web服務器模式的實現。

Dify與n8n全面對比指南:AI應用開發與工作流自動化平臺選擇【2025最新】

Dify與n8n全面對比指南&#xff1a;AI應用開發與工作流自動化平臺選擇【2025最新】 隨著AI技術與自動化工具的迅速發展&#xff0c;開發者和企業面臨著多種平臺選擇。Dify和n8n作為兩個備受關注的自動化平臺&#xff0c;分別專注于不同領域&#xff1a;Dify主要面向AI應用開發&…

day19-線性表(順序表)(鏈表I)

一、補充 安裝軟件命令&#xff1a; sudo apt-get install (軟件名) 安裝格式化對齊&#xff1a;sudo apt-get install clang-format內存泄漏檢測工具&#xff1a; sudo apt-get install valgrind 編譯后&#xff0c;使用命令 valgrind ./a.out 即可看內存是…

AI:人形機器人一定是人的形狀嗎?

本文將從技術角度分析人形機器人是否必須是人的形狀&#xff0c;以及人形與非人形機器人在適用場合、優缺點上的差異。以下是詳細解答&#xff1a; 人形機器人一定是人的形狀嗎&#xff1f; 不&#xff0c;人形機器人&#xff08;Humanoid Robot&#xff09;在技術上通常指外…

布隆過濾器和布谷鳥過濾器

原文鏈接&#xff1a;布隆過濾器和布谷鳥過濾器 布隆過濾器 介紹 布隆過濾器&#xff08;Bloom Filter&#xff09;是 1970 年由布隆提出的。它實際上是一個很長的二進制向量和一系列隨機映射函數&#xff0c;檢查值是“可能在集合中”還是“絕對不在集合中” 空間效率高&a…

無需配置光貓,使用網管交換機配合路由器的IPTV功能實現單線復用

一、背景 弱電箱和電視柜只預留了一根網線&#xff0c;路由器放在電視柜&#xff0c;想實現既可以上網又可以正常觀看iptv&#xff0c;本文提供了一種方法。 二、準備工作 1、帶iptv功能的路由器&#xff1b;2、水星sg105pro網管交換機&#xff1b;3、網線若干&#xff1b; …

深入理解SpringBoot中的SpringCache緩存技術

深入理解SpringBoot中的SpringCache緩存技術 引言 在現代應用開發中&#xff0c;緩存技術是提升系統性能的重要手段之一。SpringBoot提供了SpringCache作為緩存抽象層&#xff0c;簡化了緩存的使用和管理。本文將深入探討SpringCache的核心技術點及其在實際業務中的應用場景。…

2025認證杯數學建模A題思路+代碼+模型:小行星軌跡預測

2025認證杯數學建模A題思路代碼模型&#xff0c;詳細內容見文末名片 近地小行星&#xff08; Near Earth Asteroids, NEAs &#xff09;是軌道相對接近地球的小行 星&#xff0c;它的正式定義為橢圓軌道的近日距不大于 1.3 天文單位&#xff08; AU &#xff09;的小行星。 …

LeetCode Hot100刷題——輪轉數組

56. 輪轉數組 給定一個整數數組 nums&#xff0c;將數組中的元素向右輪轉 k 個位置&#xff0c;其中 k 是非負數。 示例 1: 輸入: nums [1,2,3,4,5,6,7], k 3 輸出: [5,6,7,1,2,3,4] 解釋: 向右輪轉 1 步: [7,1,2,3,4,5,6] 向右輪轉 2 步: [6,7,1,2,3,4,5] 向右輪轉 3 步: …

「Mac暢玩AIGC與多模態41」開發篇36 - 用 ArkTS 構建聚合搜索前端頁面

一、概述 本篇基于上一節 Python 實現的雙通道搜索服務&#xff08;聚合 SearxNG 本地知識庫&#xff09;&#xff0c;構建一個完整的 HarmonyOS ArkTS 前端頁面。用戶可在輸入框中輸入關鍵詞&#xff0c;實時查詢本地服務 http://localhost:5001/search?q...&#xff0c;返…

開源鴻蒙北向源碼開發: 5.0kit化相關sdk編譯

5.0kit化可以在編譯系統sdk時添加,將你的kit文件加入編譯使得最終生成的sdk包含kits文件 修改編譯腳本 修改build倉里面的構建腳本文件,添加kits目錄腳本命令 社區的build腳本已經有kits編譯功能了,只需要把你的kits目錄新增的kit拷貝到社區倉interface倉了,和社區的都一起編…

題單:漢諾塔問題

題目描述 如下圖所示&#xff0c;設有 nn 個大小不等的中空圓盤&#xff0c;按照從小到大的順序疊套在立柱 A 上&#xff0c;另有兩根立柱 B 和 C 。 現在要求把全部圓盤從 A 柱&#xff08;稱為源柱&#xff09;移到 C 柱&#xff08;稱為目標柱&#xff09;&#xff0c;移動…

(面試)TCP、UDP協議

TCP&#xff08;傳輸控制協議&#xff09;和UDP&#xff08;用戶數據報協議&#xff09;是互聯網核心的傳輸層協議&#xff0c;負責應用程序之間的數據傳輸。它們在設計目標、特性和適用場景上有顯著差異&#xff1a; TCP&#xff1a;面向連接&#xff0c;可靠的&#xff0c;速…

uni-app小程序登錄后…

前情 最近新接了一個全新項目&#xff0c;是類似商城的小程序項目&#xff0c;我負責從0開始搭建小程序&#xff0c;我選用的技術棧是uni-app技術棧&#xff0c;其中就有一個用戶登錄功能&#xff0c;小程序部分頁面是需要登錄才可以查看的&#xff0c;對于未登錄的用戶需要引…

通識:計算機網絡基礎知識

目錄 計算機網絡的基本組成 計算機網絡的主要分類 計算機網絡的功能 計算機網絡的關鍵技術 IP地址簡介 IP地址的版本 IP地址的分類 公有與私有IP地址 ?編輯 子網掩碼 計算機網絡基礎 IPv4與IPv6對比分析 IP地址分類簡化版 公有與私有IP地址 計算機網絡是指將地理…

三層固定實體架構:高效實現圖上的檢索增強生成(RAG)

知識圖譜正在成為跨各個領域組織和檢索信息的強大工具。它們越來越多地與機器學習和自然語言處理技術相結合,以增強信息檢索和推理能力。在本文中,我介紹了一種用于構建知識圖譜的三層架構,結合了固定本體實體、文檔片段和提取的命名實體。通過利用嵌入和余弦相似度,這種方…

ArcGIS Pro地塊圖斑順序編號(手繪線順序快速編號)-004

ArcGIS全系列實戰視頻教程——9個單一課程組合系列直播回放_arcgis初學者使用視頻-CSDN博客 4大遙感軟件&#xff01;遙感影像解譯&#xff01;ArcGISENVIErdaseCognition_遙感解譯軟件-CSDN博客 今天介紹一下在ArcGIS Pro地塊圖斑順序編號&#xff08;手繪線順序快速編號&am…

Vue百日學習計劃Day21-23天詳細計劃-Gemini版

總目標: 在 Day 21-23 完成 Vue.js 的介紹學習、環境搭建&#xff0c;并成功運行第一個 Vue 3 項目&#xff0c;理解其基本結構。 Day 21: Vue.js 介紹與概念理解 (~3 小時) 本日目標: 理解 Vue.js 是什么、漸進式框架的概念以及選擇 Vue 的原因。初步了解 Vite 是什么及其作用…