01初始uni-app+tabBar+首頁

初始uni-app+tabBar+首頁

  • 1. uni-app
    • 1.1 新建uni-app項目
    • 1.2 目錄結構
    • 1.3 把項目配置運行到微信開發者工具
  • 2. tabBar
  • 3.1 首頁
    • 3.1 配置網絡請求
    • 3.2 輪播圖區域
    • 3.3 分類導航區域
    • 3.4 樓層區域

1. uni-app

? uni-app 是使用 Vue.js 開發前端應用的框架。開發者編寫一套代碼,可以發布到ios、Android、H5、以及各種小程序、快應用等多個平臺。

在這里插入圖片描述

1.1 新建uni-app項目

  • HBuilder X 創建 uni-app項目(可以用別的),版本 4.66
  • 文件 --> 新建 --> 項目
    • 畫橫線的可以個性化設置

在這里插入圖片描述

1.2 目錄結構

一個uni-app項目,默認包晗如下目錄及文件:

|- pages				業務頁面文件存放的目錄
|	|- index
|	|	|_ indxe.vue	index頁面
|	|_ list
|		|_				list頁面
|- static				存放應用靜態資源(如圖片、視頻等)的目錄
|- main.js				Vue初始化入口文件
|- App.vue				應用配置,用來配置小程序的全局樣式、生命周期函數等
|- manifext.json		配置應用名稱、appid、logo、版本等打包信息
|- pages.json			配置頁面路徑、頁面窗口樣式、tabBar、navigationBar 等頁面信息

1.3 把項目配置運行到微信開發者工具

  1. 填寫 微信小程序 AppID

  1. 配置 微信開發者工具 的安裝路徑

  1. 在微信開發者者工具中,通過 設置-> 安全設置面板,開啟 服務端口

  1. 點擊菜單欄中的 運行 -> 運行到小程序模擬器 -> 微信開放工具

2. tabBar

? 在 pages創建 目錄。

  • 在pages.json 配置文件中新增 tabBar的配置節點

    //例"tabBar": {"selectedColor": "#C00000", 					  //配置當前tabBar頁的文本顏色"list": [{"pagePath": "pages/home/home",				 //頁面路徑"text": "首頁",							    // 頁面文本"iconPath": "/static/home.png",			     // 未選中的圖片"selectedIconPath": "/static/home-active.png" //選中的土建}]
    }
    
  • 修改導航條的樣式效果,在 pages.json 中修改 globalStyle

    "globalStyle": {"navigationBarTextStyle": "white", 				//標題文本顏色 		"navigationBarTitleText": "人民商城",			 //標題文本"navigationBarBackgroundColor": "#C00000",	    // 導航欄背景顏色"backgroundColor": "#F8F8F8",					//窗口的背景顏色}
    

3.1 首頁

3.1 配置網絡請求

? 因平臺限制,小程序項目中不支持 axios,原生的 wx.request() API buzhichi l攔截器等全局定制功能。所以在 uni-app 項目中使用 @escook/request-miniprogram 第三方包發起網絡請求。官方文檔

配置@escook/request-miniprogram (可以看官方文檔):

npm init -ynpm install @escook/request-miniprogram

在項目的 main.js 入口文件文件中,配置:

// 導入網絡請求包
import { $http } from '@escook/request-miniprogram'// 掛載到 uni 全局對象上
uni.$http = $http// 設置 base URL
$http.baseUrl = '自己的URL'// 請求攔截器
$http.beforeRequest = function(options) {uni.showLoading({title: '數據加載中...'})
}// 響應攔截器
$http.afterRequest = function() {uni.hideLoading()//關閉攔截器
}

3.2 輪播圖區域

  • 請求輪播圖數據

    • 在data中定義輪播圖數組

    • 在 onLoad生命周期函數中調用獲取輪播圖數據的方法

    • 在 methods 中定義獲取輪播圖數據方法

      export default {data() {return {//這是輪播圖的數據列表swiperList: []};},onLoad() {//調用方法, 獲取輪播圖的數據this.getSwiperList()},methods: {async getSwiperList() {const {data: res} = await uni.$http.get('URL路徑')if (res.meta.status !== 200) return uni.$showMsg()this.swiperList = res.message}}}
      
  • 渲染輪播圖的 UI 結構

    <!-- 輪播圖的區域 -->
    <swiper :indicator-dots="true"   <!-- 顯示面板指示點(小圓點) -->:autoplay="true"         <!-- 開啟自動播放 -->:interval="3000"         <!-- 自動播放間隔時間為 3000 毫秒(即 3 秒) -->:duration="1000"         <!-- 滑動動畫持續時間為 1000 毫秒(即 1 秒) -->:circular="true"         <!-- 啟用無縫循環輪播 -->
    ><!-- 使用 v-for 循環渲染每個輪播項 --><swiper-item v-for="(item, i) in swiperList" :key="i"><!-- 每個輪播項是一個導航鏈接,點擊跳轉到商品詳情頁 --><navigator class="swiper-item" :url="'/subpkg/goods_detail/goods_detail?goods_id=' + item.goods_id"open-type="navigate"  <!-- 默認跳轉方式為普通導航 -->><!-- 展示輪播圖片 --><image :src="item.image_src"></image></navigator></swiper-item>
    </swiper>
    
  • 配置小程序分包

    • 在根目錄中創建 分包的根目錄 ,名為 subpkg (可以自己取名)
    • 在 pages.json 中,和pages節點評級的位置聲明 subPackages 節點,用來定義分包相關結構
     "subPackages": [{"root": "subpkg","pages": [{"path" : "goods_detail/goods_detail","style" : {}}]}]
    
    • 根據自己需求自己設置

3.3 分類導航區域

  • 獲取分類導航區域

    • 在data中定義輪播圖數組

    • 在 onLoad生命周期函數中調用獲取輪播圖數據的方法

    • 在 methods 中定義獲取輪播圖數據方法

      export default {data() {return {//分類導航的數據列表navList: []};},onLoad() {this.getNavList()},methods: {async getNavList() {const {data: res} = await uni.$http.get('路徑')if (res.meta.status !== 200) return uni.$showMag()this.navList = res.message},navClickHandler(item) {if (item.name === '分類') {uni.switchTab({url: '/pages/cate/cate'})}}}
      
  • 渲染輪播圖的 UI 結構

    <!-- 分類導航區域 -->
    <view class="nav-list"><!-- 使用 v-for 循環渲染每個分類導航項 --><view class="nav-item" v-for="(item, i) in navList" :key="i"><!-- 每個分類導航項包含一個圖片,點擊圖片會觸發點擊事件處理函數 --><image :src="item.image_src" class="nav-img" @click="navClickHandler(item)"></image></view>
    </view>
    

3.4 樓層區域

  • 獲取樓層區域

    • 在data中定義輪播圖數組

    • 在 onLoad生命周期函數中調用獲取輪播圖數據的方法

    • 在 methods 中定義獲取輪播圖數據方法

      export default {data() {return {//樓層的數據floorList: []};},onLoad() {this.getFloorList()},methods: {async getFloorList() {const {data: res} = await uni.$http.get('自己路徑')if (res.meta.status !== 200) return uni.$showMag()//對數據進行處理res.message.forEach(floor => {floor.product_list.forEach(prod => {//通過 split('?') 方法分割字符串,獲取查詢參數部分,并將其拼接到自定義的基礎路徑后prod.url = '/subpkg/goods_list/goods_list?' + prod.navigator_url.split('?')[1]})})this.floorList = res.message}}
      
  • 渲染輪播圖的 UI 結構

    <!-- 樓層區域 -->
    <view class="floor-list"><!-- 每個樓層 item 項 --><view class="floor-item" v-for="(item, i) in floorList" :key="i"><!-- 樓層標題圖片 --><image :src="item.floor_title.image_src" class="floor-title"></image><!-- 樓層的圖片展示區域 --><view class="floor-img-box"><!-- 左側大圖盒子 --><navigator class="left-img-box" :url="item.product_list[0].url"><!-- 顯示第一個商品的大圖,并根據 image_width 設置寬度 --><image :src="item.product_list[0].image_src" :style="{width: item.product_list[0].image_width + 'rpx'}"mode="widthFix"></image></navigator><!-- 右側 4 張小圖的盒子 --><view class="right-img-box"><!-- 循環渲染 product_list 中的商品(除第一個) --><navigator class="right-img-item" v-for="(item2, i2) in item.product_list" :key="i2" :url="item2.url"><!-- 只渲染 index 不為 0 的項(即跳過第一個商品) --><image :src="item2.image_src" v-if="i2 !== 0":style="{width: item2.image_width + 'rpx'}" mode="widthFix"></image></navigator></view></view></view>
    </view>
    

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

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

相關文章

微信小程序,微信授權手機號碼

uniapp中index.vue: <template><view class"content"><button open-type"getPhoneNumber" getphonenumber"getPhoneNumber"type"primary">授權手機號登錄 </button></view></template><scrip…

數據結構 學習 圖 2025年6月14日 12點57分

搜索算法 深度優先搜索 一種用于遍歷或搜索樹或圖的算法。它沿著樹的深度遍歷樹的節點&#xff0c;盡可能深的搜索樹的分支。 DFS核心思想 深度優先&#xff1a;盡可能深地搜索樹的分支 回溯思想&#xff1a;當節點v的所在邊都已被探尋過&#xff0c;搜索將回溯到發現節點v的…

H3C路由器使用PBR 實現兩條互聯網專線互為備份

實驗拓撲 圖 1-1 注&#xff1a;如無特別說明&#xff0c;描述中的 R1 或 SW1 對應拓撲中設備名稱末尾數字為 1 的設備&#xff0c;R2 或 SW2 對應拓撲中設備名稱末尾數字為 2 的設備&#xff0c;以此類推&#xff1b;另外&#xff0c;同一網段中&#xff0c;IP 地址的主機位為…

深化信創生態布局!聚銘網絡與海量數據完成產品兼容性互認證

近日&#xff0c;聚銘網絡成功與海量數據完成了一系列產品的兼容性互認證&#xff0c;并獲得了由海量數據頒發的產品兼容互認證書。這一成就標志著雙方在技術整合方面邁出了重要一步。 經過全面嚴格的測試&#xff0c;聚銘網絡自主研發的安全系列產品&#xff0c;包括聚銘下一…

Unity AR+ 百度AI 實現 物體識別與對應英文翻譯

一、前言 我目前實現了拍照保存到手機的功能 我想進一步優化&#xff0c;實現通過手機攝像頭實時識別眼前的物體&#xff0c;顯示對應的英文的功能。 1.項目技術棧&#xff1a;Unity 2022.3.53 Vuforia 11 百度物體識別API 百度翻譯API 2.功能目標&#xff1a;使用手機攝像…

Vue.js第二節

計算屬性、事件綁定、條件判斷、遍歷循環 計算屬性&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0">…

從開源代碼入場無人機學術研究到商業化市場的全路徑指南-優雅草卓伊凡

從開源代碼入場無人機學術研究到商業化市場的全路徑指南-優雅草卓伊凡 引言&#xff1a;開源代碼在無人機研究中的重要性 優雅草卓伊凡在這里告訴大家&#xff0c;如果真的要開始進入無人機領域&#xff0c;我們需要一步步開始研究。目前先去看看開源無人機代碼是尤為重要的&…

window11中開啟ubuntu22.04子系統

一、啟用Windows子系統 打開控制面板 選擇程序然后點擊“啟用或關閉Windows功能” 勾選如下2項&#xff0c;點擊確定 二、安裝內核升級包 打開鏈接https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi下載內核升級包&#xff0c;打開后安裝、重啟電腦…

80Qt窗口_對話框

目錄 5. 對話框 5.1 對話框介紹 用例1&#xff1a; 用例2&#xff1a; 用例3&#xff1a; 用例4&#xff1a; 5.2 對話框的分類 5.2.1 模態對話框 5.2.2 ?模態對話框 5. 對話框 5.1 對話框介紹 對話框是 GUI 程序中不可或缺的組成部分。?些不適合在主窗?實現的功…

Pyenv 跟 Conda 還有 Poetry 有什么區別?各有什么不同?

pyenv、Conda 和 Poetry 是 Python 生態中常用的工具&#xff0c;但它們的核心功能和用途不同&#xff0c;通常可以結合使用。以下是它們的區別和特點&#xff1a; 1. pyenv 用途&#xff1a;管理多個 Python 解釋器版本。 核心功能&#xff1a; 安裝不同版本的 Python&#x…

數學符號和標識中英文列表(含義與示例)

數學符號和標識的參考&#xff0c;涵蓋了數學的各個主要分支&#xff0c;并提供清晰的定義和示例&#xff0c;方便快速查找和學習收藏。 目錄 基礎數學符號幾何符號代數符號線性代數符號概率與統計符號集合論符號邏輯符號微積分與分析符號數字與字母符號 特點 中英對照&…

「Java流程控制」switch結構

知識點解析 1.switch結構的核心概念 switch語句是一種多分支選擇結構,它根據表達式的值來選擇執行不同的代碼塊。與if-else結構相比,switch更適合處理離散的、有限個值的比較。 2.switch結構的基本語法 switch (表達式) {case 值1:// 代碼塊1[break;]case 值2:// 代碼塊…

從0開始學習R語言--Day27--空間自相關

有的時候&#xff0c;我們在數據進行分組時&#xff0c;會發現用正常的聚類分析的方法和思維&#xff0c;分組的情況不是很理想。其實這是因為我們常常會忽略一個問題&#xff1a;假設我們正在分析的數據是真實的&#xff0c;那么它也肯定在一定程度上符合客觀規律。而如果我們…

Excel將表格文件由寬數據轉為長數據的方法

本文介紹基于Excel軟件的Power Query模塊&#xff0c;實現表格數據由寬數據轉為長數據的具體方法。 長數據和寬數據是數據分析中的2種基本數據組織形式&#xff0c;二者在結構、用途、適用場景等方面各有特點。其中&#xff0c;寬數據 &#xff08;Wide Format&#xff09;以“…

SpringAI + DeepSeek大模型應用開發 - 入門篇

三、SpringAI Spring AILangChain4jChat支持支持Function支持支持RAG支持支持對話模型1515向量模型1015向量數據庫1520多模態模型51JDK178 1. 對話機器人 1.1 快速入門 步驟①&#xff1a;引入依賴&#xff08;先去掉openai的starter依賴&#xff0c;因為要配置API_KEY&#…

ROS docker使用顯卡驅動rviz gazebo,以及接入外設和雷達

ROS docker使用顯卡驅動rviz gazebo&#xff0c;以及接入外設和雷達 由于我的電腦裝ubuntu22.04系統&#xff0c;想使用ros noetic開發&#xff0c;使用魚香ros一鍵安裝docker安裝。但是啟動dockek中rviz無法使用顯卡驅動&#xff0c;usb相機端口不顯示&#xff0c;網口雷達無…

ruoyi后端框架的mapper層復雜字段數據獲取問題

背景。如下是復雜字段。需要在mapper.java類注解中聲明autoResultMap true才會進行處理。前提是&#xff0c;創建后端程序代碼沒有添加mapp.xml文件。故用注解簡化代替。

產品推薦|一款具有單光子級探測能力的科學相機千眼狼Gloria 1605

在生命科學超分辨率成像、量子物理單光子探測、交叉領域單分子追蹤等應用場景中&#xff0c;具有單光子級探測能力的科學相機是科學實驗的關鍵設備。 千眼狼Gloria 1605采用16μm16μm大像元尺寸設計&#xff0c;基于Gpixel科學級背照式CMOS芯片&#xff0c;集成千眼狼底層圖像…

JS.Day2-堆選(Py)/三路快排-快速選擇-215,11,560,21,128,20,121

目錄 215.找第k大元素 三路的快速排序 快速選擇 法2.堆選 &#xff08;堆排序&#xff09; 11.盛更多水的容器 代碼1 代碼2 560.和為K的子數組&#xff08;題意&#xff01;&#xff09; 慣性思維 正解 21.合并生序鏈表 遞歸寫法 128.最長連續序列 20.有效的括號…

第8章 處理幾何圖形 面向 ArcGIS的Python腳本編程

一、折點坐標(.txt 或 .xlsx 或 .xls) > 點線面圖層(.shp) &#xff08;一&#xff09;.xlsx 或 .xls > .shp 新建一個文件夾&#xff0c;連接到該文件夾&#xff0c;并將其設置為工作空間 在該文件夾下&#xff0c;新建一個pts.xlsx的文件&#xff0c;并輸入下圖內容 …