微信小程序-进阶使用
自定义组件
组件和页面的区别

引用
局部引用

全局引用

样式隔离
页面样式不影响自定义样式,自定义样式不影响页面样式
全局样式也对组件无效
只有class选择器会有样式隔离效果,id 选择器、属性选择器、标签选择器不受样式隔离的影响
建议多使用class选择器
通过styleIsolation修改组件的样式隔离选项


properties属性
properties是组件的对外属性,用来接收外界传递到组件中的数据

==在小程序里,properties和data数据的用法相同,它们都是可读可写的==
数据监听器
类似于vue的watch侦听器

监听对象上的属性写法
1 | '对象.属性A, 对象.属性A': function(a, b){ |
纯数据字段
指那些不用于界面渲染的data字段,设置可以提升页面更新性能
指定pureDataPattern为一个正则表达式

组件生命周期函数
写在lifetimes节点里

分类

主要的生命周期函数

组件所在页面的生命函数
自定义组件的行为依赖于页面状态的变化

定义在pageLifetimes节点
插槽
默认组件只有一个插槽
如果需要多个插槽,要去手动配置

多个插槽用name属性来区分
1 | //组件 test1 |
通信
父子组件通信的3种方式

属性绑定
父组件在子组件标签里传参,子组件用properties接收
事件绑定

获取子组件实例

behaviors
组件之间代码共享

创建

引入

同名覆盖和组合规则
https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/behaviors.html
CSS自定义属性
https://developer.mozilla.org/zh-CN/docs/Web/CSS/Using_CSS_custom_properties
可以在app.wxss里配置全局属性
1 | page{ |
全局数据共享

共享方案

分包
按需下载,减少小程序首次启动的下载时间

配置

引用原则
- 主包无法引用分包内的私有资源
- 分包之间不能互相引用
- 分包可以引用主包内的公共资源
预下载
在app.json里配置preloadRule

- Title: 微信小程序-进阶使用
- Author: WGenji
- Created at : 2024-08-26 13:51:51
- Updated at : 2024-08-26 13:51:51
- Link: https://redefine.ohevan.com/2024/08/26/微信小程序/4.进阶/
- License: This work is licensed under CC BY-NC-SA 4.0.