小程序开发-自定义组件及组件的样式规则_自定义组件 - 数据、方法和属性 _数据监听器_纯数据字段_组件的生命周期_插槽_父子组件之间的通信_behaviors

目录

一、自定义组件

1.1 创建组件

1.2 引用组件

1.2.1 局部引用组件

1.2.2 全局引用组件

1.2.3 全局引用 VS 局部引用

1.3  组件和页面的区别

二、自定义组件的样式

2.1. 组件样式隔离

2.2. 组件样式隔离的注意点

2.3. 修改组件的样式隔离选项

 2.4. styleIsolation 的可选值

三、自定义组件 - 数据、方法和属性 

3.1. data 数据

3.2. methods 方法

3.3. properties 属性

 3.4. data 和 properties 的区别

 3.5. 使用 setData 修改 properties 的值

四、自定义组件 - 数据监听器

4.1. 什么是数据监听器

4.2. 数据监听器的基本用法

4.3. 监听对象属性的变化

 4.3.1  案例效果

4.3.2. 渲染 UI 结构

4.3.3. 定义 button 的事件处理函数

4.3.4. 监听对象中指定属性的变化    

4.3.5. 监听对象中所有属性的变化

五、自定义组件 - 纯数据字段

5.1. 什么是纯数据字段

5.2. 使用规则

5.3. 使用纯数据字段改造数据监听器案例

六、自定义组件 - 组件的生命周期

6.1. 组件全部的生命周期函数

6.2. 组件主要的生命周期函数

6.3. lifetimes 节点

七、自定义组件 - 组件所在页面的生命周期

7.1. 什么是组件所在页面的生命周期

7.2. pageLifetimes 节点

7.3. 生成随机的 RGB 颜色值

​编辑 ​编辑

八、自定义组件 - 插槽

8.1. 什么是插槽

8.2. 单个插槽

8.3. 启用多个插槽

8.4. 定义多个插槽

九、自定义组件 - 父子组件之间的通信

9.1. 父子组件之间通信的 3 种方式

9.2. 属性绑定-父传子

9.3. 事件绑定-子传父

9.4. 获取组件实例 

 十、自定义组件 - behaviors

10.1. 什么是 behaviors

10.2. behaviors 的工作方式

10.3. 创建 behavior

10.4. 导入并使用 behavior

10.5. behavior 中所有可用的节点 

10.6. 同名字段的覆盖和组合规则*

 


一、自定义组件

1.1 创建组件

在项目的根目录中,鼠标右键,创建 components -> test 文件夹
在新建的 components -> test 文件夹上,鼠标右键,点击“ 新建 Component
键入组件的名称之后回车,会自动生成组件对应的 4 个文件,后缀名分别为 .js .json .wxml .wxss

注意:为了保证目录结构的清晰,建议把不同的组件,存放到单独目录中,例如:

 

 

1.2 引用组件

组件的引用方式分为“局部引用”和“全局引用”,顾名思义:

  • 局部引用:组件只能在当前被引用的页面内使用
  • 全局引用:组件可以在每个小程序页面中使用

1.2.1 局部引用组件

在页面的 .json 配置文件中引用组件的方式,叫做“局部引用”。示例代码如下:

 

 1.2.2 全局引用组件

app.json 全局配置文件中引用组件的方式,叫做“全局引用”。示例代码如下:

 

1.2.3 全局引用 VS 局部引用

根据组件的使用频率范围,来选择合适的引用方式:

  • 如果某组件在多个页面中经常被用到,建议进行“全局引用”
  • 如果某组件只在特定的页面中被用到,建议进行“局部引用”

 

1.3  组件和页面的区别

从表面来看,组件和页面都是由 .js.json.wxml .wxss 这四个文件组成的。但是,组件和页面的 .js .json 文件有明显的不同:

  • 组件的 .json 文件中需要声明 "component": true 属性
  • 组件的 .js 文件中调用的是 Component() 函数
  • 组件的事件处理函数需要定义到 methods 节点中

 


二、自定义组件的样式

2.1. 组件样式隔离

默认情况下,自定义组件的样式只对当前组件生效,不会影响到组件之外的 UI 结构,如图所示:

  • 组件 A 的样式不会影响组件 C 的样式
  • 组件 A 的样式不会影响小程序页面的样式
  • 小程序页面的样式不会影响组件 A C 的样式

 

好处:

防止外界的样式影响组件内部的样式
防止组件的样式破坏外界的样式

 

2.2. 组件样式隔离的注意点

  • app.wxss 中的全局样式对组件无效
  • 只有 class 选择器会有样式隔离效果,id 选择器、属性选择器、标签选择器不受样式隔离的影响

建议:在组件引用组件的页面中建议使用 class 选择器,不要使用 id、属性、标签选择器

2.3. 修改组件的样式隔离选项

默认情况下,自定义组件的样式隔离特性能够防止组件内外样式互相干扰的问题。但有时,我们希望在外界能够控制组件内部的样式,此时,可以通过 styleIsolation 修改组件的样式隔离选项,用法如下:

 2.4. styleIsolation 的可选值

可选值

默认值

描述

isolated

表示启用样式隔离,在自定义组件内外,使用 class 指定的样式将不会相互影响

apply-shared

表示页面 wxss 样式将影响到自定义组件,但自定义组件 wxss 中指定的样式不会影响页面

shared

表示页面 wxss 样式将影响到自定义组件,自定义组件 wxss 中指定的样式也会影响页面和其他设置了 apply-shared shared 的自定义组件


三、自定义组件 - 数据、方法和属性 

3.1. data 数据

在小程序组件中,用于组件模板渲染私有数据,需要定义到 data 节点中,示例如下:

3.2. methods 方法

在小程序组件中,事件处理函数自定义方法需要定义到 methods 节点中,示例代码如下:

 

3.3. properties 属性

在小程序组件中,properties 是组件的对外属性,用来接收外界传递到组件中的数据,示例代码如下:

 

 3.4. data properties 的区别

在小程序的组件中,properties 属性和 data 数据的用法相同,它们都是

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值