小程序的组件和样式
2022-03-03 本文已影响0人
我家有个王胖胖
一:创建自定义组件
1.1创建组件
![](https://img.haomeiwen.com/i4311886/af91fb33fc0a81aa.png)
①根目录下新建components文件夹,里面新建xxx文件夹
②xxx文件夹右键选中新建component,自动创建.js .wxml...文件
1.2引用组件
![](https://img.haomeiwen.com/i4311886/07075e0ae046def8.png)
1.3局部引用组件
![](https://img.haomeiwen.com/i4311886/137347ae6f0c9b71.png)
1.4全局引用
![](https://img.haomeiwen.com/i4311886/59d42a68d6e5eb78.png)
1.5使用建议
![](https://img.haomeiwen.com/i4311886/461d33c005b0ce44.png)
1.6组件与页面的区别
![](https://img.haomeiwen.com/i4311886/dde455e233d380ba.png)
1.7组件样式隔离
![](https://img.haomeiwen.com/i4311886/344fd7423cd2af95.png)
1.8组件样式隔离的注意点
![](https://img.haomeiwen.com/i4311886/389ab42557566973.png)
1.9 修改组件的样式隔离选项
options: {
styleIsolation: 'isolated'
// 默认值 isolated(启动隔离)、
// apply-shared(页面 wxss 样式将影响到自定义组件,但自定义组件 wxss 中指定的样式不会影响页面) 、
// shared(wxss 样式将影响到自定义组件,自定义组件 wxss 中指定的样式也会影响页面和其他设置了 apply-shared 或 shared 的自定义组件)、
}
})
![](https://img.haomeiwen.com/i4311886/efc9f59fe2038bb6.png)
二:数据,方法,属性和数据监听
2.1data数据
![](https://img.haomeiwen.com/i4311886/f0e26bec303b0dad.png)
2.2method方法
![](https://img.haomeiwen.com/i4311886/47c2ccb4aad57c31.png)
2.3属性
![](https://img.haomeiwen.com/i4311886/0373030433cbd88b.png)
2.4data和properties的区别
![](https://img.haomeiwen.com/i4311886/e05474a639b66b82.png)
2.5使用setData修改properties中的值
![](https://img.haomeiwen.com/i4311886/d93b2b5c78eaf2d0.png)
2.6数据监听器
只能使用在自定义组件中,在页面中是无法使用的
![](https://img.haomeiwen.com/i4311886/9b67a440f0f87257.png)
2.6.1监听Component内的属性
放在此处是,可监听当前子组件内data、props内数据的变动。" ** "为通配符,可监听所有数据的变动
![](https://img.haomeiwen.com/i4311886/485ddc687d120880.png)
![](https://img.haomeiwen.com/i4311886/bafce85b21b80271.png)
2.6.2监听对象中所有属性的变化
![](https://img.haomeiwen.com/i4311886/f1c0102e593462cf.png)
2.6.3纯数据字段
![](https://img.haomeiwen.com/i4311886/7bfb24d57b5e9c6c.png)
![](https://img.haomeiwen.com/i4311886/5cf9032b6ef5a7e1.png)
三:小程序组件的生命周期
3.1生命周期
![](https://img.haomeiwen.com/i4311886/238e352d5e4f953d.png)
![](https://img.haomeiwen.com/i4311886/e77a8783aa5caf04.png)
3.2lifetimes节点
![](https://img.haomeiwen.com/i4311886/5dc140b9286bef68.png)
3.3组件所在页面的生命周期
![](https://img.haomeiwen.com/i4311886/a34ac8c0596981c7.png)
3.4pageLifrtimes节点
![](https://img.haomeiwen.com/i4311886/3fab6a424893b940.png)
四:自定义组件的插槽
4.1什么是插槽
![](https://img.haomeiwen.com/i4311886/d44f54266ea1b294.png)
4.2单个插槽
![](https://img.haomeiwen.com/i4311886/d5b8ef0aeb035829.png)
4.3启用多个插槽
![](https://img.haomeiwen.com/i4311886/6fb5827d400ff2c0.png)
4.4定义和使用多个插槽
![](https://img.haomeiwen.com/i4311886/d3b01cd4661ef457.png)
![](https://img.haomeiwen.com/i4311886/6966e054701756a1.png)
五:父子组件间的通信
5.1父子组件通信的3中方式
![](https://img.haomeiwen.com/i4311886/ca08711d02125f2d.png)
5.2属性绑定
![](https://img.haomeiwen.com/i4311886/90ba79dbe233adc5.png)
![](https://img.haomeiwen.com/i4311886/1a274ea6c77aab49.png)
5.3事件绑定
![](https://img.haomeiwen.com/i4311886/c0717bd7633a6dda.png)
![](https://img.haomeiwen.com/i4311886/7b2e341211fef5dc.png)
![](https://img.haomeiwen.com/i4311886/68a4e36300452eba.png)
![](https://img.haomeiwen.com/i4311886/58006df48a8ae66a.png)
![](https://img.haomeiwen.com/i4311886/52b6c431ad5e6c19.png)
5.4获取组件的实例
![](https://img.haomeiwen.com/i4311886/701ccf066636ee79.png)
5.5behaviors
![](https://img.haomeiwen.com/i4311886/4954249b5bc588de.png)
5.5.1behaviors的工作方式
![](https://img.haomeiwen.com/i4311886/c1d5a9093a5b7a4b.png)
------使用步骤------:
①创建behaviors
![](https://img.haomeiwen.com/i4311886/b6dd12bb9dad45a4.png)
②导入并使用behaviors
![](https://img.haomeiwen.com/i4311886/40766dcc415be90a.png)
5.6behaviors中可用的节点(红色为常用的节点)
![](https://img.haomeiwen.com/i4311886/b8e62f367bf4e114.png)
behaviors同名字段的的组合覆盖规则:
![](https://img.haomeiwen.com/i4311886/b0e0cc8a67e15a08.png)
1、如果有同名的属性或方法,组件本身的属性或方法会覆盖 behavior 中的属性或方法,如果引用了多个 behavior ,在定义段中靠后 behavior中的属性或方法会覆盖靠前的属性或方法;
2、如果有同名的数据字段,如果数据是对象类型,会进行对象合并,如果是非对象类型则会进行相互覆盖;
3、生命周期函数不会相互覆盖,而是在对应触发时机被逐个调用。如果同一个 behavior 被一个组件多次引用,它定义的生命周期函数只会被执行一次
组件相关总结:
image.png