學習Uni-app開發小程序Day23

今天學習了將上一章的所有核算的js,抽離出去,讓在其他地方可以直接調用,然后和適配抖音的辦法,封裝網絡請求;

抽離公共方法

如何將公共方法抽離?
1、在根目錄創建一個目錄,一般起名是:utils
2、寫一個js頁面
3、在js頁面中,要用export將方法暴露出去,
4、在需要的地方,先引用公共方法,然后直接調用

在這里插入圖片描述
這是設置的公共方法頁面,如何引用呢?
在這里插入圖片描述
這就是引用,先引用js頁面,然后只用記錄方法的名稱,但是在使用的時候,因為是方法,所以是要用括號的

用條件編譯對抖音小程序適配

為什么要對抖音進行適配,是因為抖音小程序是有左邊的圖標,那就需要把左邊的圖標進行計算,給自定義的標題要加上邊距,不會讓覆蓋設置的標題。


export const getLeftIncon = () => {// #ifdef MP-TOUTIAOlet {leftIcon: {left,width}} = tt.getCustomButtonBoundingClientRect();return left + parseInt(width);// #endif// #ifndef MP-TOUTIAOreturn 0// #endif
}

tt.getCustomButtonBoundingClientRect():這是抖音開發中的api,可以獲取到詳細信息,這里只是做個記錄,大家知道有這個情況,如果要開發的時候,就需要做更改設計。
條件編譯,前面已經說過了,這里只說下,抖音在條件編譯中,是要設置成TOUTIAO的,

封裝網絡請求

前面的頁面,全部是本地靜態的圖片展示,現在使用網絡請求獲取圖片信息。訪問的地址:
咸蝦米API免費接口大全;這是老師提供的接口地址,大家可以使用。
正常請求,是使用uni.request()請求,傳遞參數等,例如:

  let res = await uni.request({url: "https://tea.qingnian8.com/api/bizhi/homeBanner"})if (res.data.errCode === 0) {bannerList.value = res.data.data} else {uni.showToast({title: "接口錯誤"})}

這就是正常情況下的網絡請求,但是當頁面請求過多的時候,在使用這種方式,會讓代碼量多,查找的時候很不方便,因此,可以將請求地址,放在特定的文件夾下。
在根目錄下創建一個文件:api文件
在api文件下創建一個js:apis.js
將所有網絡請求放在apis中;例如:

export function apiGetBanner(){return uni.request({url:"https://tea.qingnian8.com/api/bizhi/homeBanner"})
}

在請求頁面,使用下面的方法調用,這里需要知道,使用的是async…await的方式

const randomList = ref([]);const getDayRandom = async () => {let res=await apiGetDayRandom();randomList.value = res.data

這就是把請求放在apis.js文件中,減少重復性的代碼。但當頁面的請求多的時候,發現還是有重復性的很多代碼,這就得使用前面說過的ES6 Promise的用法,ES7 async/await異步處理同步化,異步處理進化史,這里有課程,可以多看看,前面已經說了,這里在說下
ES6 Promise的用法,ES7 async/await異步處理同步化,異步處理進化史
這就是把網絡請求的公共模塊,放在公共文件夾下utils,這里生成一個request.js文件,把請求的公共地址參數等,都做成以參的形式,例如:

//這是定義一個基礎網絡地址
const BASE_URL = 'https://tea.qingnian8.com/api/bizhi';
//config = {},這是給的默認為空,當不傳的時候,就是空
export function request(config = {}) {
//下面是參數設定,url:地址,data:參數;method:請求方式,默認GET;header:請求的keylet {url,data = {},method = "GET",header = {}} = config//這里是將傳過來的請求地址和原地址進行拼接url = BASE_URL + url// header['access-key'] = "xxxxxx"console.log(url);return new Promise((resolve, reject) => {uni.request({url,data,method,header,success: res => {if (res.data.errCode === 0) {resolve(res.data)} else if (res.data.errCode === 400) {uni.showModal({title: "錯誤提示",content: res.data.errMsg,showCancel: false})reject(res.data)} else {uni.showToast({title: res.data.errMsg,icon: "none"})reject(res.data)}},fail: err => {reject(err)}})})
}

這樣,就實現了網絡請求的封裝了,方便后期不論是修改還是維護。
最近感覺有點懈怠了,加油!!!

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

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

相關文章

物聯網網關在電梯按需維保方案中起到什么作用?梯聯網網關

為減少電梯故障和預防電梯事故,保障人身和財產安全,基于物聯網技術的電梯按需維保已在全國多地陸續推行,做到了電梯安全隱患預測式排查,處理問題更具科學性、針對性和精準性,有效提升了電梯運行的安全性。那么&#xf…

深度學習之基于YoloV5入侵檢測系統

歡迎大家點贊、收藏、關注、評論啦 ,由于篇幅有限,只展示了部分核心代碼。 文章目錄 一項目簡介 二、功能三、系統四. 總結 一項目簡介 一、項目背景 隨著信息技術的飛速發展,網絡安全問題日益凸顯。入侵檢測系統(IDS&#xff0…

IC設計運營管理ERP適合中小型芯片公司

在數字化、智能化的今天,企業資源計劃(ERP)系統已成為企業管理的重要工具。特別是在中小型芯片公司中,IC設計運營管理ERP更是發揮著舉足輕重的作用。 首先,ERP系統能夠實現對企業內各種資源的集成管理,包括資金、人力資源、設備和…

我的第一個JAVA程序IDEA版

目錄 第一步 新建一個空項目第二步 新建模塊第三步 新建包第四步 新建類第五步 新建main方法 第一步 新建一個空項目 第二步 新建模塊 第三步 新建包 第四步 新建類 然后在包文件夾下新建類 第五步 新建main方法

線程池(C++)

個人主頁&#xff1a;Lei寶啊 愿所有美好如期而遇 線程池 實現線程類 #pragma once#include <pthread.h> #include <iostream> #include <vector> #include <string> #include <cstdlib> #include <cstring> #include <functional&…

Python深度學習基于Tensorflow(12)實戰生成式模型

文章目錄 Deep Dream風格遷移參考資料 Deep Dream DeepDream 是一項將神經網絡學習模式予以可視化展現的實驗。與孩子們觀察云朵并嘗試解釋隨機形狀相類似&#xff0c;DeepDream 會過度解釋并增強其在圖像中看到的圖案。 DeepDream為了說明CNN學習到的各特征的意義&#xff0c…

「51媒體」線下活動媒體同步直播,云分發,分流直播

傳媒如春雨&#xff0c;潤物細無聲&#xff0c;大家好&#xff0c;我是51媒體網胡老師。 線下活動除了邀請嘉賓&#xff0c;邀請媒體&#xff0c;邀請行業大咖KOL&#xff0c;來為活動站臺&#xff0c;背書外&#xff0c;我們也可以將線下的活動同步在線上進行直播&#xff0c…

Codeforces Round 821 (Div. 2) C. Parity Shuffle Sorting (構造之全變成一樣的)

給你一個數組 a a a &#xff0c;其中有 n n n 個非負整數。你可以對它進行以下操作。 選擇兩個索引 l l l 和 r r r ( 1 ≤ l < r ≤ n ) ( 1≤l<r≤n ) (1≤l<r≤n)。 如果 a l a r a_la_r al?ar? 是奇數&#xff0c;則進行 a r : a l a_r:a_l ar?:al?…

react【框架原理詳解】JSX 的本質、SyntheticEvent 合成事件機制、組件渲染過程、組件更新過程

JSX 的本質 JSX 代碼本身并不是 HTML&#xff0c;也不是 Javascript&#xff0c;在渲染頁面前&#xff0c;需先通過解析工具&#xff08;如babel&#xff09;解析之后才能在瀏覽器中運行。 babel官網可查看 JSX 解析后的效果 更早之前&#xff0c;Babel 會把 JSX 轉譯成一個 R…

AI大模型探索之路-實戰篇4:DB-GPT數據應用開發框架調研實踐

目錄 前言一、DB-GPT總體概述二、DB-GPT關鍵特性1、私域問答&數據處理&RAG2、多數據源&GBI3、多模型管理4、自動化微調5、Data-Driven Multi-Agents&Plugins6、隱私安全 三、服務器資源準備1、創建實例2、打開jupyterLab 四、DB-GPT啟動1、激活 conda 環境2、切…

區塊鏈fisco聯盟鏈搭建(二)搭建多群組聯盟鏈

本文章只講搭建的命令方法 以單機、四機構、三群組、八節點的星形組網拓撲為例 第一步創建并進入工作目錄&#xff08;繼續以fisco為例&#xff09; mkdir /fisco cd /fisco 獲取搭鏈腳本上一篇文章區塊鏈fisco聯盟鏈搭建 (一)搭建單群組四節點聯盟鏈中有 第二步生成多群組…

抖音小店沒有流量不出單?歸根到底,就是轉化率不行!

哈嘍~我是電商月月 新手做抖音小店&#xff0c;最憂愁的就是&#xff1a;店鋪不出單怎么辦&#xff1f; 商家通常會把沒有銷量的原因&#xff0c;都推向于“店鋪沒有流量” 但在抖音&#xff0c;這個日活量高達9億的平臺來說&#xff0c;任何商鋪最不缺的應該就是流量了 但…

61850的總體建模原則

IEC 61850標準是電力系統自動化領域的一個重要標準,它定義了數據的模型和設備描述,使得不同廠家的設備之間能夠實現互操作性。下面將圍繞“61850的總體建模原則”展開討論,主要包括物理設備建模基礎、邏輯設備組合規則、邏輯節點功能劃分、數據模型統一標準、配置文件規范描…

炒股前你要知道的股票知識

一、股票組成 A股股票組成板塊有:地區板塊、行業板塊、證監會板塊,概念板塊。 其中各個板塊還可以分為: A農、林、牧、漁業; B采礦業; C制造業; D電力、熱力、燃氣及水生產和供應業; E建筑業; F批發和零售業; G交通運輸、倉儲和郵政業; H住宿和餐飲業; I…

《Qt》使用Windeployqt發布程序

之前都是使用QTVS開發&#xff0c;這次直接使用QT開發&#xff0c;記錄一下程序發布過程&#xff0c;方便后期使用查閱。 添加環境變量 在path目錄下添加如下路徑&#xff1a; 之前使用QTVS2013&#xff0c;添加如下路徑 D:\App\Qt5.9.3\5.9.3\msvc2013_64\bin; D:\App\Qt…

dll文件是什么?電腦丟失某個dll文件有什么解決辦法

Dll文件是什么&#xff1f;這個文件在電腦中是什么樣的地位&#xff1f;如果電腦提示丟失了某個dll文件那么有什么辦的解決這個問題呢&#xff1f;如何將丟失的dll文件進行修復呢&#xff1f;今天這篇文章將按就來教大家幾種修復丟失dll文件問題的方法。 DLL 文件&#xff0c;全…

[Redis]基本全局命令

Redis存儲方式介紹 在 Redis 中數據是以鍵值對的凡事存儲的&#xff0c;鍵&#xff08;Key&#xff09;和值&#xff08;Value&#xff09;是基本的數據存儲單元。以下是對 Redis 鍵值對的詳細講解&#xff1a; 鍵&#xff08;Key&#xff09;&#xff1a; 類型&#xff1a;…

JVM、JRE和JDK的區別

首先需要確定的是JDK里是包含JRE的&#xff0c;而JRE里又包含JVM&#xff0c;它們區別在于面向的服務對象不同所以進行了不同的包裝。 JVM&#xff1a;JVM是面向操作系統&#xff0c;.Class字節碼->機器碼以及程序運行的內存的管理。 JRE&#xff1a;JRE是面向于程序的&am…

全局配置路徑無法識別的解決——后端

在全局配置路徑reggie.path的時候&#xff0c;無法正常啟動SpringBoot項目 Value("${reggie.path}")private String basePath; 查看application.yml的配置情況: 發現path沒有起作用&#xff0c;推測是格式問題&#xff0c;冒號后面空格后即可

Web API——獲取DOM元素

目錄 1、根據選擇器來獲取DOM元素 2.、根據選擇器來獲取DOM元素偽數組 3、根據id獲取一個元素 4、通過標簽類型名獲取所有該標簽的元素 5、通過類名獲取元素 目標&#xff1a;能查找/獲取DOM對象 1、根據選擇器來獲取DOM元素 語法&#xff1a; document.querySelector(css選擇…