【Vue】移動端開發(Uni-app、Taro)

在這里插入圖片描述

個人主頁:Guiat
歸屬專欄:Vue

在這里插入圖片描述

文章目錄

  • 1. Uni-app 與 Taro 簡介
    • 1.1 什么是 Uni-app?
    • 1.2 什么是 Taro?
    • 1.3 Uni-app vs Taro(對比圖)
  • 2. 項目初始化與目錄結構
    • 2.1 初始化 Uni-app 項目
    • 2.2 初始化 Taro 項目(Vue3 模板)
  • 3. 跨端 API 與組件調用
    • 3.1 常用跨端 API(以 Uni-app 為例)
      • 示例:獲取用戶信息
      • 圖表:常見 API 在不同平臺的支持情況
    • 3.2 平臺條件編譯(Taro)
  • 4. UI 組件庫推薦
    • 4.1 Uni-app 推薦組件庫
      • uView 示例:
    • 4.2 Taro 推薦組件庫
      • NutUI 示例:
  • 5. 性能優化策略
    • 5.1 分包加載(適用于 Uni-app)
      • pages.json 配置分包:
      • 分包加載流程圖
    • 5.2 減少重復渲染(Vue 通用)
  • 6. 實際項目案例分析
    • 6.1 電商類項目(Uni-app)
      • 功能模塊:
      • 技術點:
    • 6.2 社交類項目(Taro + Vue3)
      • 功能模塊:
      • 技術點:
  • 7. 常見問題與調試技巧
    • 7.1 調試工具推薦
    • 7.2 常見問題匯總
  • 8. 總結與選型建議
    • 8.1 如何選擇 Uni-app 還是 Taro?
    • 8.2 未來趨勢預測

正文

1. Uni-app 與 Taro 簡介

1.1 什么是 Uni-app?

  • Uni-app 是一個使用 Vue.js 開發所有前端應用的框架。
  • 支持一次開發,多端部署(H5、小程序、App等)。
  • 使用 Vue 的語法規范,兼容大部分 Vue 生態。

1.2 什么是 Taro?

  • Taro 是一個多端統一開發解決方案,由京東凹凸實驗室開源。
  • 支持 React、Vue、Vue3 等多種框架。
  • 支持編譯到微信小程序、H5、React Native 等平臺。

1.3 Uni-app vs Taro(對比圖)

特性Uni-appTaro
框架支持VueReact / Vue / Vue3
編譯目標小程序/H5/App/快應用等小程序/H5/React Native/SSR 等
學習成本較低(基于 Vue)中高(需熟悉 React 或 Vue)
社區生態成熟(DCloud 維護)成熟(京東維護)
插件系統自有插件市場npm 包 + 官方組件庫

2. 項目初始化與目錄結構

2.1 初始化 Uni-app 項目

使用 HBuilderX 或命令行:

vue create -p dcloudio/uni-preset-vue my-project

目錄結構如下:

my-project/
├── pages.json              # 頁面配置文件
├── main.js                 # 入口文件
├── App.vue                 # 根組件
├── pages/                  # 頁面目錄
│   └── index/index.vue     # 首頁頁面
└── static/                 # 靜態資源

2.2 初始化 Taro 項目(Vue3 模板)

npm install -g @tarojs/cli
taro init my-taro-project

選擇 Vue3 模板后生成結構如下:

my-taro-project/
├── config/                 # 構建配置
├── src/
│   ├── app.config.ts       # 應用配置
│   ├── app.vue             # 根組件
│   ├── main.ts             # 入口文件
│   └── pages/
│       └── index/index.vue # 頁面組件

3. 跨端 API 與組件調用

3.1 常用跨端 API(以 Uni-app 為例)

示例:獲取用戶信息

<template><view @click="getUserInfo">點擊獲取用戶信息</view>
</template><script>
export default {methods: {getUserInfo() {uni.getUserProfile({desc: '用于完善會員資料',success: (res) => {console.log('用戶信息:', res.userInfo);},fail: (err) => {console.error('獲取失敗:', err);}});}}
}
</script>

圖表:常見 API 在不同平臺的支持情況

API 名稱微信小程序H5App快應用
uni.getUserProfile????
uni.showToast????
uni.downloadFile????

注:部分 API 在 H5 上可能功能受限或不支持。

3.2 平臺條件編譯(Taro)

Taro 提供了條件編譯能力,實現平臺差異化邏輯。

// #ifdef H5
console.log('當前是 H5 環境');
// #endif// #ifdef MP-WEIXIN
import wx from 'weixin-js-sdk';
// #endif

4. UI 組件庫推薦

4.1 Uni-app 推薦組件庫

  • uView UI:專為 Uni-app 設計的 UI 框架。
  • Thor UI:輕量美觀,適合中后臺項目。
  • ColorUI:簡潔風格,適合個人項目。

uView 示例:

npm install uview-ui

main.js 中引入:

import uView from 'uview-ui';
Vue.use(uView);

在頁面中使用:

<template><u-button type="primary" text="提交"></u-button>
</template>

4.2 Taro 推薦組件庫

  • Taroify(官方推薦):類似 Vant 的組件庫。
  • NutUI-Taro:京東出品,支持多端。

NutUI 示例:

安裝:

npm install @nutui/nutui-taro --save

使用按鈕組件:

<template><nut-button type="primary">提交</nut-button>
</template>

5. 性能優化策略

5.1 分包加載(適用于 Uni-app)

將頁面拆分為多個子包,減少主包體積。

pages.json 配置分包:

{"subpackages": [{"root": "pagesA","pages": [{ "path": "index", "style": {} }]}],"pages": [{ "path": "index/index", "style": {} }]
}

分包加載流程圖

+-------------+
| 主包 app.js |
+-------------+|v
+------------------+
| 加載子包 pagesA  |
+------------------+|v
+------------------+
| 顯示具體頁面內容 |
+------------------+

5.2 減少重復渲染(Vue 通用)

使用 v-if 替代 v-show 控制是否渲染組件;合理使用 keep-alive 緩存頁面狀態。


6. 實際項目案例分析

6.1 電商類項目(Uni-app)

功能模塊:

  • 商品展示(瀑布流)
  • 購物車管理
  • 訂單支付(對接微信支付)
  • 用戶中心(本地緩存登錄)

技術點:

  • 使用 uni.request() 請求數據;
  • 使用 vuex 管理購物車狀態;
  • 使用 uView 快速搭建界面。

6.2 社交類項目(Taro + Vue3)

功能模塊:

  • 動態發布與評論
  • 消息通知(WebSocket)
  • 多端同步登錄(OAuth)

技術點:

  • 使用 Taro.createSelectorQuery() 獲取 DOM;
  • 使用 Pinia 狀態管理;
  • 使用 Taroify 組件庫。

7. 常見問題與調試技巧

7.1 調試工具推薦

  • Chrome DevTools:H5 端調試;
  • 微信開發者工具:小程序調試;
  • HBuilderX 內置運行工具:Uni-app 調試;
  • React DevTools(Taro 使用 React 時);

7.2 常見問題匯總

問題現象解決方案
頁面白屏檢查路由配置和頁面路徑
接口請求失敗檢查域名白名單與 HTTPS 設置
打包后樣式丟失使用 CSS-in-JS 或全局樣式注入
Taro 中 Vue 生命周期未觸發升級 Taro 到最新版本,檢查 setup 語法

8. 總結與選型建議

8.1 如何選擇 Uni-app 還是 Taro?

  • 如果你:

    • 熟悉 Vue;
    • 項目需要發布到 App;
    • 更關注快速上線;
    • → 推薦使用 Uni-app
  • 如果你:

    • 熟悉 React;
    • 項目更偏向小程序;
    • 需要更高的定制化能力;
    • → 推薦使用 Taro

8.2 未來趨勢預測

框架發展趨勢
Uni-appDCloud 推動生態擴展,向企業級靠攏
Taro多框架支持增強,生態持續活躍

結語
感謝您的閱讀!期待您的一鍵三連!歡迎指正!

在這里插入圖片描述

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

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

相關文章

自定義SpringBoot Starter-筆記

SpringBoot Starter的介紹參考&#xff1a; Spring Boot Starter簡介-筆記-CSDN博客。這里介紹如何自定義一個springBoot Starter。 1. 項目結構 創建一個 Maven 項目&#xff0c;結構如下&#xff1a; custom-spring-boot-starter-demo/ ├── custom-hello-jdk/ # jdk模…

linux >!

Linux 中 >! 符號的含義與用法 ?基本定義?在 Linux Shell 中,>! 是由 > 和 ! 組合的特殊符號,主要用于 ?強制覆蓋文件?。其行為與常規的 > 類似,但額外添加了忽略潛在限制的功能。 ?典型場景?繞過 noclobber 限制?: 若 Shell 啟用了 noclobber 選項(默…

共鑄價值:RWA 聯合曲線價值模型,撬動現實資產生態

摘要 本文提出了一種針對真實資產&#xff08;RWA&#xff09;產業的聯合曲線激勵模型&#xff0c;將勞動與數據貢獻映射為曲線價值&#xff0c;并基于固定檔位與指數衰減獎勵發放總計 2.1億積分。該模型結合了去中心化定價與平滑遞減機制&#xff0c;不僅為早期貢獻者提供更高…

java安全入門

文章目錄 java基礎知識this變量方法可變參數構造方法繼承的關鍵字protected super阻止繼承方法重載向上轉型和向下轉型多態抽象接口static靜態字段default方法 包final內部類 java序列化與反序列化反射urldns鏈動態代理類加載器&#xff08;ClassLoader&#xff09;雙親委派模型…

前端基礎之《Vue(14)—組件通信(1)》

一、什么是組件通信 1、通信是組件或模塊之間的數據交互。 2、組件多重通信就形成了數據流&#xff0c;數據流管理的優劣決定了產品能否上線&#xff0c;返工是否頻繁的問題。 3、Vue中有哪些常見的通信方案&#xff1f; 組件樹的概念&#xff1a; 在Vue中&#xff0c;組件…

el-row el-col

參考layout布局 Element - The worlds most popular Vue UI frameworkElement&#xff0c;一套為開發者、設計師和產品經理準備的基于 Vue 2.0 的桌面端組件庫https://element.eleme.cn/#/zh-CN/component/layout#row-attributes 一行可以看做24個 Element UI 中的 el-row 是…

Socket-TCP

在TCP/ip協議中&#xff0c;用源IP、源端口號、目的IP、目的端口號、協議號這樣一個五元組來標識一個通信&#xff01; 端口號范圍劃分 0 - 1023: 知名端口號&#xff0c;HTTP&#xff0c;FTP&#xff0c;SSH 等這些廣為使用的應用層協議&#xff0c;他們的端口號都是固定的。…

大數據Spark(五十八):Spark Pi介紹

文章目錄 Spark Pi介紹 Spark Pi介紹 Spark Pi是Apache Spark官方提供的一個示例程序&#xff0c;該案例使用 Spark 進行分布式計算&#xff0c;通過蒙特卡羅方法估算圓周率&#xff08;π&#xff09;的值&#xff0c;其估算π原理如下&#xff1a; 上圖中&#xff0c;正方形…

Doris索引機制全解析,如何用高效索引加速數據分析

在當今大數據時代&#xff0c;企業對于實時數據分析的需求呈現爆發式增長。面對動輒PB級的數據量和秒級響應的業務訴求&#xff0c;傳統數據庫系統往往力不從心。Apache Doris作為新一代MPP分析型數據庫&#xff0c;憑借其獨特的索引機制&#xff0c;在京東、美團等企業的實時數…

基于SpringBoot + Vue 的作業管理系統

產品包含&#xff1a; 項目源碼數據庫文件論文ppt 技術棧 架構: B/S、MVC 系統環境&#xff1a;Windows/Mac 開發環境&#xff1a;IDEA、JDK1.8、Maven、Mysql 技術棧&#xff1a;Java、Mysql、SpringBoot、Mybatis、Vue 功能模塊 用戶模塊&#xff1a;學生用戶、管理員、…

HCL(HashiCorp Configuration Language)是一種結構化配置語言

HCL&#xff08;HashiCorp Configuration Language&#xff09;是一種結構化配置語言&#xff0c;語法簡潔且可讀性強&#xff0c;廣泛用于 Docker Buildx Bake、Terraform、Nomad 等工具的配置。以下是其核心語法規則和示例&#xff1a; 1. 基礎結構 HCL 使用 塊&#xff08;…

《AI大模型應知應會100篇》第50篇:大模型應用的持續集成與部署(CI/CD)實踐

第50篇&#xff1a;大模型應用的持續集成與部署&#xff08;CI/CD&#xff09;實踐 &#x1f9fe; 摘要 在AI大模型開發中&#xff0c;隨著模型版本迭代頻繁、依賴復雜、部署環境多樣&#xff0c;構建一套高效可靠的持續集成與持續交付&#xff08;CI/CD&#xff09;流程顯得尤…

【Linux深入淺出】之全連接隊列及抓包介紹

【Linux深入淺出】之全連接隊列及抓包介紹 理解listen系統調用函數的第二個參數簡單實驗實驗目的實驗設備實驗代碼實驗現象 全連接隊列簡單理解什么是全連接隊列全連接隊列的大小 從Linux內核的角度理解虛擬文件、sock、網絡三方的關系回顧虛擬文件部分的知識struct socket結構…

DB-GPT V0.7.1 版本更新:支持多模態模型、支持 Qwen3 系列,GLM4 系列模型 、支持Oracle數據庫等

V0.7.1版本主要新增、增強了以下核心特性 &#x1f340;DB-GPT支持多模態模型。 &#x1f340;DB-GPT支持 Qwen3 系列&#xff0c;GLM4 系列模型。 &#x1f340; MCP支持 SSE 權限認證和 SSL/TLS 安全通信。 &#x1f340; 支持Oracle數據庫。 &#x1f340; 支持 Infini…

2025五一數學建模競賽A題完整分析論文(共45頁)(含模型、可運行代碼、數據)

2025年五一數學建模競賽A題完整分析論文 摘 要 一、問題分析 二、問題重述 三、模型假設 四、符號定義 五、 模型建立與求解 5.1問題1 5.1.1問題1思路分析 5.1.2問題1模型建立 5.1.3問題1參考代碼 5.1.4問題1求解結果 5.2問題2 5.2.1問題2思路分析 …

[學習]RTKLib詳解:pntpos.c與postpos.c

文章目錄 RTKLib詳解&#xff1a;pntpos.c與postpos.cPart A: pntpos.c一、概述二、整體工作流程三、主要函數說明1. pntpos()2. satposs()3. estpos()4. rescode()5. prange()6. ionocorr()7. tropcorr()8. valsol()9. raim_fde()10. estvel() 四、函數調用關系圖&#xff08;…

【科研繪圖系列】R語言繪制世界地圖(map plot)

禁止商業或二改轉載,僅供自學使用,侵權必究,如需截取部分內容請后臺聯系作者! 文章目錄 介紹加載R包數據下載導入數據數據預處理畫圖輸出圖片系統信息介紹 【科研繪圖系列】R語言繪制世界地圖(map plot) 加載R包 library(ggmap) library(RColorBrewer) library(pals) …

在pycharm profession 2020.3上安裝使用xlwings

之前寫了一篇文章在win7和python3.8上安裝xlwings-CSDN博客 今天安裝了pycharm profession 2020.3&#xff0c;自帶Terminal&#xff0c;所以試一下安裝xlwings。 一、新建一個python項目 二、安裝xlwings 三、輸入安裝命令 pip3.exe install -i https://pypi.tuna.tsinghu…

【PostgreSQL數據分析實戰:從數據清洗到可視化全流程】4.3 數據脫敏與安全(模糊處理/掩碼技術)

&#x1f449; 點擊關注不迷路 &#x1f449; 點擊關注不迷路 &#x1f449; 點擊關注不迷路 文章大綱 PostgreSQL數據脫敏實戰&#xff1a;從模糊處理到動態掩碼的全流程解析4.3 數據脫敏與安全&#xff1a;模糊處理與掩碼技術深度實踐4.3.1 數據脫敏的核心技術體系4.3.1.1 技…

堅鵬:平安保險集團《保險行業發展趨勢與AI應用方法及案例》培訓

堅鵬&#xff1a;平安保險集團《保險行業發展趨勢與AI應用方法及案例》培訓圓滿成功 中國平安保險&#xff08;集團&#xff09;股份有限公司是全球領先的綜合金融生活服務集團&#xff0c;2024年位列《財富》世界500強第16位&#xff0c;連續多年蟬聯全球保險品牌價值榜首。截…