微信小程序121~130

1.小程序功能開發-首頁功能

通過并發請求獲取首頁的數據。

// 導入封裝的網絡請求模塊實例
import http from '../utils/http'
// 定義接口api函數
export const reqIndexData = () => {// 通過方式請求并獲取首頁數據,提升頁面渲染速度// 通過Promise.all進行并發請求return Promise.all([http.get('/index/findBanner'),http.get('/index/findCategory1'),http.get('/index/advertisement'),http.get('/index/findListGoods'),http.get('/index/findRecommendGoods')])
}import { reqIndexData } from '../../api/index'
// 調用獲取數據
Page({data: {bannerList: [],categoryList: [],activeList: [],hotList: [],guessList: []},// 獲取首頁數據async getIndexData() {// 調用接口API函數,獲取數據const res = await reqIndexData()// 對數據賦值的時候要注意索引this.setData({bannerList: res[0].data,categoryList: res[1].data,activeList: res[2].data,guessList: res[3].data,hotList: res[4].data})},// 監聽頁面的加載onLoad() {// 頁面加載后,調用獲取首頁數據的方法this.getIndexData()}
})
2. 分析輪播圖區域并渲染
 <navigator class="navigator" url="/pages/goods/detail/detail?goodsId={{ item.id }}"><image class="img" src="{{ item.imageUrl }}"></image>
</navigator>
3.實現輪播圖和指示點的聯動

切換輪播圖時面板指示點高亮,想實現一一對應的關系,要借助索引

Component({/*** 組件的屬性列表*/properties: {// 輪播圖數據bannerList: {type: Array,value: ['../../../assets/banner/banner-1.jpg', '../../../assets/banner/banner-2.jpg', '../../../assets/banner/banner-3.jpg']}},/*** 組件的初始數據*/data: {activeIndex: 0},/*** 組件的方法列表*/methods: {// 獲取被激活的輪播圖索引getSwiperIndex(event) {//   console.log(event)const { current } = event.detailthis.setData({activeIndex: current})}}
})
4.分析商品導航區域并渲染
 <!-- 導航鏈接 --><navigator class="navigator-nav" url="/pages/goods/list/list?category1Id={{ item.id }}"><image class="nav-img" src="../../../assets/images/cate-1.png" /><text class="nav-text">{{ item.name }}</text></navigator><view class="adver"><view class="adver-left"><navigator url="/pages/goods/list/list?category2Id={{ activeList[0].category2Id }}"><image src="{{ activeList[0].imageUrl }}" mode="widthFix" /></navigator></view><view class="adver-right"><view><navigator url="/pages/goods/list/list?category2Id={{ activeList[1].category2Id }}"><image src="activeList[1].imageUrl" mode="widthFix" /></navigator></view><view><navigator url="/pages/goods/list/list?category2Id={{ activeList[2].category2Id }}"><image src="activeList[2].imageUrl" mode="widthFix" /></navigator></view></view></view>
5.首頁骨架屏組件

骨架屏是頁面的空白版本,開發者會使用css繪制一些灰色的區塊,將頁面內容大致勾勒出輪廓,通常會在頁面完全渲染之前,將骨架屏代碼進行展示,數據加載完之后,在替換成真實的內容。
目的:優化用戶體驗。
使用方法:
在 C:\Users\Desktop\模板文件\miniprogram\pages\index\index.wxml 引入模板

<import src="index.skeleton.wxml"/>
<template is="skeleton" wx:if="{{loading}}" />

在 C:\Users\Desktop\模板文件\miniprogram\pages\index\index.wxss 中引入樣式

@import "./index.skeleton.wxss";
6.獲取商品分類數據
// 導入封裝的接口api函數
import { reqCategoryData } from '../../api/category'Page({// 初始化數據data: {categoryList: [] // 商品分類列表數據},// 商品分類的數據async getCategoryData() {const res = await reqCategoryData()if (res.code === 200) {this.setData({categoryList: res.data})}},// 監聽頁面加載onLoad() {// 調取獲取商品分類的數據的方法this.getCategoryData()}
})import http from '../utils/http'export const reqCategoryData = () => {return http.get('/index/findCategoryTree')
}
7.渲染一級分類并實現切換功能

一級分類

<view class="left-view-item {{ activeIndex === index ? 'active' : '' }}" wx:for="{{ categoryList }}" wx:key="id" bind:tap="updateActive" data-index="{{ index }}"> {{ item.name }} </view>

切換功能

  // 實現一級分類的切換效果updateActive(event) {// console.log(event.currentTarget.dataset)const { index } = event.currentTarget.datasetthis.setData({activeIndex: index})},
8.渲染二級分類數據

在一級分類下存在children字段,里面的數據是一級分類對應的二級分類的數據,在訪問以及分類時,只要將一級分類對應的二級分類拿出來進行渲染即可。

<view><view wx:for="{{ categoryList[activeIndex].children }}" wx:key="index" class="right-view-item"><navigator class="navigator" url="/pages/goods/list/list?category2Id={{ item.id }}"><image class="" src="../../assets/images/cate-1.png"></image><text class="goods_item_name">{{ item.name }}</text></navigator></view></view>
9.mobx-miniprogram

方便頁面、組件之間的傳遞。
是一個輕量級狀態管理庫。
定義管理的狀態是響應式的,一旦狀態改變,所有關聯組件都會自動更新相對應的數據,全局共享,自動更新視圖組件,提升開發效率。

需要注意: 在使用 mobx-miniprogram 需要安裝兩個包: mobx-miniprogram 和 mobx-miniprogram-bindings

  1. mobx-miniprogram 的作用: 創建 Store 對象, 用于存儲應用的數據
  2. mobx-miniprogram-bindings 的作用: 將狀態和組件、頁面進行綁定關聯, 從而在組件和頁面中操作數據
npm install mobx-miniprogram mobx-miniprogram-bindings
10.創建Store對象

如果需要創建 Store 對象需要使用 mobx-miniprogram ,因此需要先熟悉 mobx-miniprogram 三個核心概念:

  1. observable :用于創建一個被監測的對象,對象的屬性就是應用的狀態(state),這些狀態會被轉換成響應式數據。
  2. action :用于修改狀態(state)的方法,需要使用 action 函數顯式的聲明創建。
  3. computed :根據已有狀態(state)生成的新值。計算屬性是一個方法,在方法前面必須加上 get 修飾符
import { observable, action } from 'mobx-miniprogram'// store對象
export const numStore = observable({numA: 1,numB: 2,// action用來修改狀態update: action(function () {this.numA += 1this.numB += 1}),// 計算屬性基于已有狀態產生新狀態get sum() {// 必須有返回值return this.numA + this.numB}
})

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

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

相關文章

Java Stream流:高效數據處理全解析

Java Stream 流詳解 Stream 是 Java 8 引入的 API&#xff0c;用于高效處理集合數據&#xff08;如 List、Set、Map 等&#xff09;。它支持函數式編程風格&#xff0c;能實現復雜的查詢、過濾、映射等操作&#xff0c;并支持并行處理以提升性能。核心特點 非存儲數據結構&…

光子精密雙目3D線激光輪廓測量儀,擺脫視覺盲區,1臺更比2臺強!

光子精密雙目3D線激光輪廓測量儀&#xff08;GL-8160D&#xff09;&#xff0c;在GL-8000系列的基礎上創新升級。GL-8160D采用全新雙目單線設計&#xff0c;突破傳統3D視覺檢測限制&#xff0c;而且不受外部拼接標定誤差影響&#xff0c;有效消除單目盲區&#xff0c;抗光干擾能…

基于Linux驅動的可見光通信方案 —— 開源 OpenVLC 平臺入門(附 BeagleBone Black 驅動簡單解析)

60 美元玩轉 Li-Fi —— 開源 OpenVLC 平臺入門&#xff08;附 BeagleBone Black 及驅動解析&#xff09;一、什么是 OpenVLC&#xff1f; OpenVLC 是由西班牙 IMDEA Networks 研究所推出的開源可見光通信&#xff08;VLC / Li-Fi&#xff09;研究平臺。它把硬件、驅動、協議棧…

Git系列--4.Git分支設計規范

目錄 一、了解開發環境 1.1概念闡述 1.2系統概括圖 二、設計規范之GitFlow模型 2.1具體分支概念 2.1.1master 分? 2.1.2release 分? 2.1.3develop 分? 2.1.4feature 分? 2.1.5hotfix 分? 2.2宏觀表格 三、分支流程圖 一、了解開發環境 1.1概念闡述 對于開發人員…

【時間之外】AI在農機配件設計場景的應用

目錄 農機制造業痛點 AI場景暢想 落后就要挨打 農機制造業痛點 最近&#xff0c;我與一位在制造業摸爬滾打多年的老友相聚。酒過三巡&#xff0c;話題漸漸轉到他的事業上。他興致勃勃地跟我講起&#xff0c;自己正主導著一個規模達幾千萬的項目&#xff0c;生產基地遠在孟加…

基于定制開發開源AI智能名片與S2B2C商城小程序的旅游日志創新應用研究

摘要&#xff1a;本文探討了旅游日志在記錄旅行美景與人物中的重要性&#xff0c;結合當下數字化發展趨勢&#xff0c;引入定制開發開源AI智能名片與S2B2C商城小程序的概念。分析如何將這兩者與旅游日志風格元素相融合&#xff0c;打造一種創新的旅游記錄與分享模式&#xff0c…

XGBoosting算法詳解(Boosting思想的代表算法)

文章目錄相關文章一、Boosting思想&#xff1a;從弱到強的串行提升二、XGBoost算法思想&#xff1a;GBDT的極致優化三、XGBoost數學原理&#xff1a;從目標函數到樹分裂3.1 目標函數定義3.2 正則化項&#xff1a;控制樹的復雜度3.3 泰勒二階展開&#xff1a;簡化目標函數3.4 化…

Vue + Element UI 實現選框聯動進而動態控制選框必填

目錄 一. 需求描述 二. 解決思路 三. 代碼實現 四. 效果展示 一. 需求描述 如下圖所示&#xff0c;新增人員頁面&#xff0c;有字段"Leader DS"和"Leader DS名稱"。 現在我要在字段"Leader DS"和"Leader DS名稱"字段下方再添加一…

高通SG882G平臺(移遠),Ubuntu22編譯:1、下載代碼

不要使用Ubuntu24&#xff0c;不穩定。 docker聽著美好&#xff0c;其實也有問題。比如你給別人的時候&#xff0c;虛擬機直接給過去&#xff0c;馬上就能用。 安裝工具 sudo apt-get install -y \ diffstat xmlstarlet texinfo chrpath gcc-aarch64-linux-gnu libarchive-d…

Android音視頻探索之旅 | C++層使用OpenGL ES實現視頻渲染

一.前言 在學習音視頻的過程中&#xff0c;實現視頻渲染是非常常見的&#xff0c;而渲染的方式也挺多&#xff0c;可以使用Java層的OpenGL ES進行圖形渲染&#xff0c;也可以使用Ffmpeg來顯示&#xff0c;還有就是通過C層的OpenGL ES來進行渲染。OpenGL ES是OpenGL三維圖形API…

公鏈的主要特征有哪些?

公鏈&#xff08;公共區塊鏈&#xff09;是指對所有人開放、無需授權即可參與的區塊鏈&#xff0c;其主要特征包括&#xff1a;- 開放性&#xff1a;任何人都可以自由加入網絡&#xff0c;參與節點運行、數據驗證或交易&#xff0c;無需經過中心化機構的審核。- 去中心化&#…

博途多重背景、參數實例--(二)

引用官方技術支持&#xff1a; 《《 博圖&#xff0c;怎么把DINT類型轉換成TIME&#xff0c;就是MCGS觸摸屏上設置時間&#xff0c;PLC里的定時器TIME 》》 我們把上面的實現&#xff0c;封裝成FC,FB塊&#xff08;FB程序內調用定時器指令時的選項不…

單片機基礎

什么是嵌入式系統&#xff1f; 嵌入式系統通常指的是專門為某種功能設計的微型計算機系統&#xff0c;比如智能手表、家電控制板、汽車ECU等。 什么是嵌入式系統的IO&#xff1f; IO&#xff08;Input/Output&#xff0c;輸入/輸出&#xff09;就是嵌入式系統與外部世界“交…

全連接神經網絡(MLP)原理與PyTorch實現詳解

一、全連接神經網絡概述全連接神經網絡(Fully Connected Neural Network)&#xff0c;也稱為多層感知機(Multi-Layer Perceptron, MLP)&#xff0c;是深度學習中最基礎的神經網絡結構之一。它由多個全連接層組成&#xff0c;每一層的神經元與下一層的所有神經元相連接。1.1 神經…

推薦系統-數據分割、性能驗證

推薦系統基礎概念前言 作者根據開源項目 gorse 的每一步提交&#xff0c; 系統性學習推薦系統架構組成以及gorse中使用的推薦算法的實現。 通過參考算法文檔以及代碼實現&#xff0c;作者對gorse的學習過程以及進度 與 博客發布的時間線保持一致數據集分割原因 推薦系統的根本任…

從電商新手到單日變現5000+,我是如何做到閑魚爆單的

很多人想做項目賺錢&#xff0c;卻總是邁不出第一步。今天給大家分享一個可以從電商小白到成功跑通項目&#xff0c;實現單日GMV 5000的項目。今天將分享從選品、內容制作、銷售服務的全過程實戰經驗。1&#xff1a;閑魚實戰&#xff0c;強執行力01實操前的準備執行力就是你的動…

vue3實現pdf文件預覽 - vue-pdf-embed

參考地址&#xff1a;https://juejin.cn/post/7105933034771185701 這個參考文章的代碼直接可以復制使用&#xff0c;樣式也是給到的&#xff0c;但是實現的是一頁一頁的顯示pdf內容&#xff0c;我的需求是要全部展示出來&#xff0c;頁碼切換時是做一個滾動定位操作。 思路&am…

【AI論文】OmniPart:基于語義解耦與結構連貫性的部件感知三維生成

摘要&#xff1a;創建具有顯式、可編輯部件結構的三維資產&#xff0c;對于推動交互式應用的發展至關重要。然而&#xff0c;大多數生成方法僅能生成整體式形狀&#xff0c;限制了其實際應用價值。我們提出OmniPart——一種新型的部件感知三維物體生成框架&#xff0c;旨在實現…

Pandas-數據查看與質量檢查

Pandas-數據查看與質量檢查一、數據查看&#xff1a;快速掌握數據概況1. 整體概覽&#xff1a;shape與info()2. 數值特征預覽&#xff1a;describe()3. 隨機抽樣&#xff1a;head()與sample()二、數據質量檢查&#xff1a;識別與處理問題1. 缺失值檢查與處理處理策略&#xff1…

類和對象拓展——日期類

一.前言通過前面對類和對象的學習&#xff0c;現在我們可以開始實踐日期類的代碼編寫。在實際操作過程中&#xff0c;我會補充之前文章中未提及的相關知識點。二.正文 1. 日期類代碼實現我們先來看看要實現什么功能吧&#xff0c;把他放在Date.h中#pragma once #include<ios…