微信小程序15: 小程序组件

创建组件

①在项目的根目录中,鼠标右键,创建components -> test文件夹

②在新建的components -> test文件夹上,鼠标右键,点击“新建Component‘

③键入组件的名称之后回车,会自动生成组件对应的4个文件,后缀名分别为js,json,wxml和wxSS

组件和页面的区别

组件的js和json与页面不同

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

自定义组件样式

默认情况下,组件样式只会对当前组件生效,不会影响到组件之外的UI结构如图所示:
CleanShot 2024-04-26 at 00.28.41@2x.png
注意:app.wxss中的全局样式对组件无效
在使用组件的时候最好使用class选择器

修改组件的样式隔离

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

Compontent({
   
  options:{
   
    stylelsolation:"isolated"
  }
})

json配置

{
   
  "stylelsolation":"isolated"
}

CleanShot 2024-04-26 at 00.33.14@2x.png

引用方式

局部和全局、两种引用方式

局部引用:组件只能在当前页面进行引用

在页面的json文件红进行引用

{
     
  "usingComponents": {
   
    "mytese":"/components/test/test"
  }
}

组件的使用

<mytese></mytese>

全部引用:组件可以在每个小程序中使用

在app.json文件中,引入组件

"usingComponents": {
   
  "mytest1":"/components/test1/test1"
}

然后在任何页面都可以使用该组件

<mytest1></mytest1>

经常使用的组件我们需要进行全局引用,局部引用在特定页面中

data数据

在小程序组件中,用于组件模版渲染和私有数据,需要定义到data节点中

/**
   * 组件的初始数据
   */
data: {
   
  count:1
},

methods方法

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

<view>{
  {count}}</view>
<button bind:tap="addCount">+1</button>

js文件

methods: {
   
  addCount(){
   
    this.setData({
   
      count:this.data.count+1
    })
    this._showCount()
  },
  _showCount(){
   
    wx.showToast({
   
      title: 'count值为:'+this.data.count,
      icon:'none'
    })
  }
}
})

properties属性

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

/**
   * 组件的属性列表
   */
properties: {
   
  max:{
   
    type:Number,
      value:10
  },
},

当然也可以不定义value直接定义number
max:Number
使用

methods: {
   
  addCount(){
   
    if(this.data.count>=9) return
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

饭一口口吃

来杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值