微信小程序-进阶使用

WGenji Lv4

自定义组件

组件和页面的区别

image-20221011193716587

引用

局部引用

image-20221011193211210

全局引用

image-20221011193259987

样式隔离

页面样式不影响自定义样式,自定义样式不影响页面样式

全局样式也对组件无效

只有class选择器会有样式隔离效果,id 选择器、属性选择器、标签选择器不受样式隔离的影响

建议多使用class选择器

通过styleIsolation修改组件的样式隔离选项

image-20221011194757205

image-20221011194736883

properties属性

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

image-20221011195857447

==在小程序里,properties和data数据的用法相同,它们都是可读可写的==

数据监听器

类似于vue的watch侦听器

image-20221011201005082

监听对象上的属性写法

1
2
3
4
5
6
7
8
'对象.属性A, 对象.属性A': function(a, b){

}
//**可以监听对象里所有的属性
'对象.**': function(obj){
console.log(obj.a)
console.log(obj.b)
}

纯数据字段

指那些不用于界面渲染的data字段,设置可以提升页面更新性能

指定pureDataPattern为一个正则表达式

image-20221011204129964

组件生命周期函数

写在lifetimes节点里

image-20221011205654519

分类

image-20221011204801995

主要的生命周期函数

image-20221011205249994

组件所在页面的生命函数

自定义组件的行为依赖于页面状态的变化

image-20221011210333525

定义在pageLifetimes节点image-20221011210441065

插槽

默认组件只有一个插槽

如果需要多个插槽,要去手动配置

image-20221012165001573

多个插槽用name属性来区分

1
2
3
4
5
6
7
8
//组件 test1
<slot name="one"></slot>
<slot name="two"></slot>

//使用者
<test1>
<view slot="one"></view>
</test1>

通信

父子组件通信的3种方式

image-20221012165549204

属性绑定

​ 父组件在子组件标签里传参,子组件用properties接收

事件绑定

image-20221012170548862

获取子组件实例

image-20221012172529596

behaviors

组件之间代码共享

image-20221012172827711

创建

image-20221012173202420

引入

image-20221012173307866

同名覆盖和组合规则

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
2
3
page{
--danger-color: red;
}

全局数据共享

image-20221013205855229

共享方案

image-20221013210126428

分包

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

image-20221014170537589

配置

image-20221014171210239

引用原则

  1. 主包无法引用分包内的私有资源
  2. 分包之间不能互相引用
  3. 分包可以引用主包内的公共资源

预下载

在app.json里配置preloadRule

image-20221014174524407

  • 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.