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多个线程。从差距看变化不大,…