微信小程序71~80

1.總結小程序生命周期
  1. 小程序冷啟動,鉤子函數執行的順序
  2. 保留當前頁面,進入下一個頁面,鉤子函數執行的順序
  3. 銷毀當前頁面,進入下一個頁面,鉤子函數執行的順序
  4. 小程序熱啟動,鉤子函數執行的順序
2.使用Component構造頁面

用于創建自定義組件
component方法必page更強大

Component({// 可以用component方法配置// 注意事項:// 1. .json文件中必須包含usingComponents字段// 2. 里面的配置項需要和Component中的配置項一致// 3. 頁面中Page方法有一些鉤子函數,事件監聽方法,這些鉤子函數,事件監聽方法必須寫在methods對象中// 4. 頁面的屬性 properties 也可以接受頁面的參數,在onLoad鉤子函數中可以通過this.data 進行獲取properties: {id: String,title: String},data: {name: 'tom'},methods: {updateName () {   this.setData({name : 'jerry'})},onLoad (options) {console.log(this.data.id);console.log(this.data.title);console.log(this.properties.id);}}
})
3. 組件復用機制behaviors
  • behaviors是一種代碼復用的方式,將通用的邏輯和方法提取出來,在多個組件中復用
  • 如果要用behaviors復用代碼,用Behaviors()方法,每個behaviors可以包含一組屬性、數據、生命周期函數的方法
  • 組件引用它時,他的屬性、數據、方法被合并到組件中,生命周期也會在對應的時機被調用
const behavior = Behavior({/*** 組件的屬性列表*/properties: {label: {type: String,value: '我已同意'}},/*** 組件的初始數據*/data: {name: 'tom',obj: {name: 'tyke'}},/*** 組件的方法列表 */methods: {updateName () {this.setData({name: 'jerry'})}},lifetimes: {attached () {console.log('我是組件的生命周期函數')}}
})
export default behavior
// 導入
import behavior from './behavior';
Component({// 注冊behaviors: [behavior]
})  

在以后開發中,組件與behavior存在相同的字段時:

  1. properties相同的話,會使用組件內部的數據
  2. data相同的話,如果是對象類型會進行合并(相同的也會以組件內部為先),不是對象類型,以組件內部為準
  3. methods相同的話,使用組件內部的數據
  4. 生命周期函數相同的話,兩個都會被觸發,先執行behavior的,在執行組件內部的
4.外部樣式類

在使用組件時,組件使用者可以給組件傳入CSS類名,通過傳入的類名修改組件的樣式。
如果需要外部樣式類修改組件的樣式,在Component中要用externalClasses定義若干個外部樣式類。

// Component中 .js
// 組件接受的外部樣式類externalClasses: [ 'extend-class' ],// page頁面中
<!-- 屬性是在 externalClasses 里面定義的元素 -->
<!-- 屬性值必須是一個類名 -->
<custom08 extend-class="my-class"/>.my-class {color: aquamarine;
}// Component中 .wxml
<!-- 如果外部樣式類和普通樣式類都存在,兩個類的優先級未定義,建議在添加外部樣式類時加!important增加權重 -->
<view class="extend-class">通過外部樣式類修改組件樣式</view>
5.完善復選框案例以及總結自定義組件

在這里插入圖片描述
在這里插入圖片描述

6.使用npm包

npm init -y
npm i @vant/weapp
不是所有的包都能在微信小程序內使用,要先確定是否能在小程序使用

7.自定義構建npm

對目錄進行調整優化,要在project.config.json中指定node_modules的位置和目標miniprogram_npm的位置
具體配置如下:

  1. 配置 project.config.json 的 miniprogramRoot 指定小程序源碼的目錄
  2. 配置 project.config.json 的 setting.packNpmManually 為 true,開啟自定義 node_modules 和 miniprogram_npm 位置的構建 npm 方式
  3. 配置 project.config.json 的 setting.packNpmRelationList 項,指定 packageJsonPath 和 miniprogramNpmDistDir 的位置
{"compileType": "miniprogram","miniprogramRoot": "/miniprogram","setting": {"es6": true,"postcss": true,"minified": true,"uglifyFileName": false,"enhance": true,"packNpmManually": true,"packNpmRelationList": [{"packageJsonPath": "/package","miniprogramNpmDistDir": "/miniprogram"}],"babelSetting": {"ignore": [],"disablePlugins": [],"outputPath": ""},"useCompilerPlugins": ["sass"],"minifyWXML": true},"compileType": "miniprogram","simulatorPluginLibVersion": {},"packOptions": {"ignore": [],"include": []},"appid": "wx28f413c3f05907a4","editorSetting": {}
}
8.Vant Weapp組件庫的使用

將style: v2 去除
在使用van-image圖片組件渲染本地圖片時,不能使用…/ ,需要相對于小程序源碼的目錄來查找圖片才可以

// app.json全局樣式
"usingComponents": {"van-image": "@vant/weapp/image/index","van-loading": "@vant/weapp/loading/index"}// index.wxml
<!-- 圖片組件接收外部樣式類 -->
<van-image 
custom-class="custom-class"
width="100" 
height="100" 
round 
src="https://img.yzcdn.cn/vant/cat.jpeg" 
bind:tap="imageHandler"
>
<!-- slot插槽的使用 -->
<van-loading slot="loading" type="spinner" size="20" vertical />
<text slot="error">加載失敗</text>
</van-image>
9.Vant Weapp組件樣式覆蓋
  1. 解除樣式隔離:在頁面中使用 Vant Weapp 組件時,可直接在頁面的樣式文件中覆蓋樣式

在自定義組件中如果需要Vant Weapp組件的樣式,需要解除樣式隔離,shared

options: {styleIsolation: 'shared'},
  1. 使用外部樣式類:需要注意的是普通樣式類和外部樣式類的優先級是未定義的,使用時需要添加 !important 保證外部樣式類的優先級
<van-button custom-class="custom-class" type="primary">主要按鈕</van-button>
  1. 使用 CSS 變量:在頁面或全局對多個組件的樣式做批量修改以進行主題樣式的定制

在這里插入圖片描述

10.小程序分包加載

在這里插入圖片描述

限制:
整個小程序所有分包大小(主包加分包)不超過20MB
單個分包/珠寶大小不超過2MB

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

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

相關文章

[Pytest][Part 3]檢測python package狀態

目錄 實現需求1&#xff1a; 檢查python package狀態——pkg_resource hook實現自動檢測包狀態 conftest.py hook鉤子函數 Part1: https://blog.csdn.net/x1987200567/article/details/144915315?spm1001.2014.3001.5501 從這里開始逐個實現Part1中的需求 實現需求1&a…

自定義時間范圍選擇組件使用教程(基于 Vue 3 + Element Plus)

&#x1f553; 自定義時間范圍選擇組件使用教程&#xff08;基于 Vue 3 Element Plus&#xff09;? 一個靈活實用的時間范圍選擇器&#xff0c;支持開始時間、結束時間、快捷時間選項、本地雙向綁定、插槽擴展等功能。–&#x1f4d8; 一、功能介紹 該組件基于 Element Plus …

YOLOv8 模型轉換 ONNX 后 C# 調用異常:一個參數引發的跨平臺適配難題

一、問題背景&#xff1a;從 Python 訓練到 C# 部署的跨平臺需求 作為一名 C# 開發者&#xff0c;我在完成 YOLOv8 模型訓練&#xff08;使用 Ultralytics 官方框架&#xff0c;訓練數據為自定義目標檢測數據集&#xff0c;輸入尺寸 640x640&#xff0c;訓練輪次 100 輪&#…

Apache Cloudberry 亮相 2025 IvorySQL 生態大會暨 PostgreSQL 高峰論壇

6 月 27 日至 28 日&#xff0c;IvorySQL 2025 生態大會暨 PostgreSQL 高峰論壇在泉城濟南順利召開。本屆大會由 IvorySQL 開源數據庫社區主辦、瀚高基礎軟件股份有限公司承辦&#xff0c;吸引了來自國內外的數據庫技術專家、開發者與開源愛好者齊聚一堂&#xff0c;聚焦數據庫…

CMake之CMakeLists.txt語法規則

本文主要參考正點原子的應用開發手冊&#xff0c;僅作為本人學習筆記使用。 目錄 cmake 的使用方法其實還是非常簡單的&#xff0c;重點在于編寫 CMakeLists.txt&#xff0c;CMakeLists.txt 的語法規則也簡單&#xff0c;并沒有 Makefile的語法規則那么復雜難以理解&#xff01…

Mysql專題復習

重點內容&#xff1a;1. Mysql架構&#xff1a;客戶端 Server層 存儲引擎2. 索引數據結構&#xff1a;B樹4. 索引優化&#xff1a;覆蓋索引、排序、JOIN、分頁&#xff1b; COUNT; 索引下推&#xff1b;單/雙路排序5. 數據庫事務&#xff1b; 鎖&#xff1b;隔離級別&#xff…

CLIP的tokenizer詳解

一、bytes_to_unicodedef bytes_to_unicode():"""Returns list of utf-8 byte and a corresponding list of unicode strings.The reversible bpe codes work on unicode strings.This means you need a large # of unicode characters in your vocab if you wa…

【如何判斷Linux系統是Ubuntu還是CentOS】

要確定您的操作系統是 Ubuntu 還是 CentOS&#xff0c;可以通過以下方法快速檢查&#xff1a; 方法 1&#xff1a;通過終端命令&#xff08;推薦&#xff09; 在終端中執行以下命令之一&#xff1a; 查看 /etc/os-release 文件 cat /etc/os-releaseUbuntu 特征&#xff1a;顯示…

RISCV Linux 虛擬內存精講系列二 -- Linux 入口 head.S

通過 Linux 的構建系統&#xff0c;即 Linux 源代碼的根目錄下的 Makefile&#xff0c;能夠找到 vmlinux 的鏈接文件&#xff0c;從而能夠查看其入口代碼 head.S:_start&#xff0c; 如下&#xff1a; Linux 構建系統主Makefile: vmlinux.lds: head.S: 找到該入口后&#xff0c…

springAI學習:Advisors

spring AI Advisors類似于攔截器&#xff0c;會對請求的prompt做出特定的修改和增強&#xff08;比如傳入歷史溝通記錄、搜索信息等等&#xff09;&#xff0c;以達到完善prompt的目的。通過Advisors API&#xff0c;開發人員可以創建更為復雜、可重用、可維護的AI組件。下面介…

MySQL CDC與Kafka整合指南:構建實時數據管道的完整方案

一、引言&#xff1a;現代數據架構的實時化需求 在數字化轉型浪潮中&#xff0c;實時數據已成為企業的核心資產。傳統批處理ETL&#xff08;每天T1&#xff09;已無法滿足以下場景需求&#xff1a; 實時風險監控&#xff08;金融交易&#xff09;即時個性化推薦&#xff08;電商…

MATLAB | 繪圖復刻(二十一)| 扇形熱圖+小提琴圖

前段時間在小紅書刷到了一個很有特色的熱力圖&#xff0c;由大佬滾筒洗衣機創作&#xff0c;感覺很有意思&#xff0c;嘗試 MATLAB 復刻&#xff1a; 作者使用的是 python 代碼&#xff0c;趕快去瞅瞅。 復刻效果 正文部分 0.數據準備 數據需要一個用來畫熱圖的矩陣以及一個…

批量PDF轉換工具,一鍵轉換Word Excel

軟件介紹 今天為大家推薦一款高效的Office文檔批量轉換工具&#xff0c;能夠快速將Word和Excel文件批量轉換為PDF格式。 軟件特點 這款名為"五五Excel word批量轉PDF"的工具體積小巧&#xff0c;不到2M大小&#xff0c;卻能實現強大的批量轉換功能&#xff0c…

面試150 基本計算器

思路 利用棧&#xff08;stack&#xff09;來保存進入括號前的計算狀態&#xff08;包括當前計算結果和符號&#xff09;&#xff0c;以便在括號結束后正確恢復計算上下文。代碼通過遍歷字符串&#xff0c;識別數字、加號、減號和括號。遇到數字時構造完整數值&#xff1b;遇到…

源哈希(sh)解析

源哈希&#xff08;Source Hashing&#xff09;是一種負載均衡算法&#xff0c;它根據請求的源 IP 地址&#xff08;或其他標識符&#xff09;生成哈希值&#xff0c;然后根據這個哈希值將請求分配到特定的后端服務實例。這種方法常用于確保來自同一客戶端的請求始終被路由到同…

axios的使用以及封裝

前言&#xff1a; 在現代前端開發中&#xff0c;網絡請求是不可避免的核心功能之一。無論是獲取后端數據、提交表單信息&#xff0c;還是與第三方 API 交互&#xff0c;高效且可靠的 HTTP 請求庫至關重要。axios 作為一款基于 Promise 的 HTTP 客戶端&#xff0c;憑借其簡潔的 …

github上部署自己的靜態項目

前置知識1、要在github部署項目要提交打包后的靜態文件(html,css&#xff0c;js)到倉庫里2、我們看下github所提供給我們的部署方式有啥&#xff0c;如下所見&#xff1b;要么是/root文件夾&#xff08;就說倉庫里全是打包后的產物&#xff1a;html,css&#xff0c;js要全部放到…

能源管理綜合平臺——分布式能源項目一站式監控

綜合性的能源企業管理面臨著項目多、分布散、信息孤島等問題&#xff0c;分布式的多項目能源在線監控管理平臺是一種集成了多個能源項目的數據采集、監控、分析和管理的系統。平臺集成GIS能力&#xff0c;能夠展示項目的整體分布態勢&#xff0c;對不同地點、不同類型的能源項目…

修改阿里云vps為自定義用戶登錄

win系統上找到控制面板-->用戶賬戶-->更改賬戶類型點擊更改賬戶類型&#xff0c;此時我們看到vps的默認管理員賬戶Administrator。為了防止vps被別人使用默認賬戶Administrator攻擊&#xff0c;我們添加一個用戶賬戶&#xff0c;點擊添加用戶賬戶。 用戶名建議奇葩點&…

Linux: perf: debug問題一例,cpu使用率上升大約2%;多線程如何細化cpu及perf數據分析

文章目錄 前提面臨的問題內核級別函數的差別繼續debug總結根據pid前提 一個進程安置在一個CPU上,新功能上線之后,固定量的業務打起來,占用的CPU是42%。之前沒有新功能的情況下,CPU占用是40%。差了大約2%。而且這個進程里的線程數非常多,有50多個線程。從差距看變化不大,…