组件
创建自定义组件
首先在项目下新建一个components
的文件夹,然后在components
里面新建一个hdNav
的文件夹并鼠标右击这个hdNav
文件夹点击新建component
便完成了一个自定义组件前提工作。
基本配置
在自定义组件的js文件里面配置
1
2
3
4
5
6
7
8// components/hdNav/com-hdNav.js
Component({
options: {}, // 自定义组件的
properties: {}, // 自定义组件的属性列表
data: {}, // 自定义组件的初始数据
methods: {}, // 自定义组件的方法列表
observers: {}, // 数据监听器 用于监视data与properties
})在自定义组件的json文件里面配置
1
2
3
4
5// components/hdNav/com-hdNav.json
{
"component": true,
"usingComponents": {}
}
引用和使用组件
引用
com-hdNav
组件有两种方法引用组件
全局配置里面引用
1
2
3
4
5
6// app.json
{
"usingComponents": {
"com-hdNav": "/components/hdNav/com-hdNav"
},
}局部页面里面引用
1
2
3
4
5
6// pages/home/home.json
{
"usingComponents": {
"com-hdNav": "/components/hdNav/com-hdNav"
},
}局部引用其他页面需要使用就需要在相应的json里面进行配置。
使用
com-hdNav
组件1
2<!-- pages/home/home.wxml -->
<com-hdNav/>com-hdNav
组件的样式需要在com-hdNav.wxss
里面定义,其他地方定义的样式是无法令com-hdNav
起作用的。
自定义组件与页面之间传递参数
定义
com-hdNav
的属性1
2
3
4
5
6
7
8
9
10// components/hdNav/com-hdNav.js
Component({
properties: {
myProperty: {
type: String,
value: ''
}
// myProperty: String
},
})调用自定义组件的页面需要向自定义组件传参可以通过定义的属性进行传值。
1
2<!-- pages/home/home.wxml -->
<com-hdNav myProperty="传入参数"/>使用传入的参数
1
2
3
4<!-- components/hdNav/com-hdNav.wxml --!>
<view>{{myProperty}}<view>
<!-- 等价于 <view>传入参数</view> --!>在自定义组件的js文件里面获取属性值(即 myProperty的值)可以通过
this.properties.myProperty
或this.data.myProperty
获取值。com-hdNav
组件数据向外传参给
com-hdNav
绑定事件1
2<!-- pages/home/home.wxml -->
<com-hdNav bind:getData="getData"/>为
com-hdNav
设置方法函数1
2
3
4
5
6
7
8// components/hdNav/com-hdNav.js
Component({
methods: {
getData: function() {
this.triggerEvent('getData', this.data)
}
}
})触发
bind:getData
事件,只需要在自定义组件的事件方法里面调用this.getData()
即可。
自定义组件设置节点与使用节点
自定义组件使用节点
单个节点设置
1
2
3
4<!-- components/hdNav/com-hdNav.wxml --!>
<view>
<slot />
<view>使用
slot
标签设置节点,调用自定义组件的页面从而插入自定义wxml代码。多个节点设置
1
2
3
4
5
6
7// components/hdNav/com-hdNav.js
Component({
options: {
// 启用多个slot支持
multipleSlots: true
}
})1
2
3
4
5<!-- components/hdNav/com-hdNav.wxml --!>
<view>
<slot name="slot1"></slot>
<slot name="slot1"></slot>
<view>在调用自定义组件的页面里面可以通过指定
<view slot="slot1"></view>
即为代替自定义组件的<slot name="slot1"></slot>
处的代码。
注意事项
wxss
样式选择器尽量使用class
- 测试远程接口可以在
本地设置
开启不校验合法域名,解决网页数据接口无法访问的问题 - 自定义组件的属性值,在
wxml
里面获取到可以和逻辑文件里面data
参数一样的使用方式 - 小程序获取dom对象需要通过
wx.createSelectorQuery()
- 直接赋值相当于拿取到变量的地址,保持源数据不变需要拷贝
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 hjhcos!
评论