小程序 自定义组件

                                    自定义组件 :  官方教程   

一 小程序提供了很多api和基础组件,但为减少代码的复杂度和提高复用率,小程序也提供了自己的代码复用机制:

    小程序复用:页面模版(template),组件模版(component,使用时用标签的形式)。

                         这两种模版的写法和之前页面的写法是一样的,都有四个文件 wxml,js,wxss, json


二我们在使用基础组件时比如 <view bindtap="" catchtap="" data-name="" id="" class="" ></view> 总会写事件和属性值,

自定义组件也一样需要有自己的属性和事件,

属性分内部属性和外部属性,这两种属性共同设置了组件的样式。内部属性可以理解为手机的预装软件。外部属性可以理解为手机的应用商店,可以自己手动管理。当然我们也会提供接口供使用者来修改内部属性。

三,生命周期:

组件也有生命周期函数,和页面一样。

页面有:onload   onready    onshow    onhide       onunload

组件有:created   attached   ready       detached    move

新建component组件:

四,自定义组件,这是官方提供的例子

Component({                  //自定义组件的专有形式,如page页面的page({}),app文件的App({})

  behaviors: [],           

  properties: {
    myProperty: { // 属性名
      type: String, // 类型(必填),目前接受的类型包括:String, Number, Boolean, Object, Array, null(表示任意类型)
      value: '', // 属性初始值(可选),如果未指定则会根据类型选择一个
      observer: function(newVal, oldVal){} // 属性被改变时执行的函数(可选),也可以写成在methods段中定义的方法名字符串, 如:'_propertyChange'
    },
    myProperty2: String // 简化的定义方式
  },
  data: {}, // 私有数据,可用于模版渲染

  // 生命周期函数,可以为函数,或一个在methods段中定义的方法名
  attached: function(){},
  moved: function(){},
  detached: function(){},

  methods: {
    onMyButtonTap: function(){
      this.setData({
        // 更新属性和数据的方法与更新页面数据的方法类似
      })
    },
    _myPrivateMethod: function(){
      // 内部方法建议以下划线开头
      this.replaceDataOnPath(['A', 0, 'B'], 'myPrivateData') // 这里将 data.A[0].B 设为 'myPrivateData'
      this.applyDataUpdates()
    },
    _propertyChange: function(newVal, oldVal) {

    }
  }

})

      在使用组件的页面的json文件中配置

       {  useComponents:{"自定义组件名字":"组件的绝对路径"}}     如{  useComponents:{"div":"../page/page"}}

需求:自定义组件中放其他的基础组件。

方法:在自定义组件的wxml文件中使用<slot name="">标签

自定义组件:<slot name="test"></slot>,将此标签放入想要安置的位置。

引用页面 :<view style="background: _ _ _" slot="test"></view>//如果想要设置样式的话写在<slot>标签中是无效的。


 组件不论是自定义组件还是基础组件,都有自己的属性,事件。

注意:如果组件wxml文件中的slot标签中写了name属性,那么就必须在组件的js文件中写上options:{multipleSlots:true},不然不起作用。

           


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值