小程序组件化开发component

读文档很枯燥,我就先看了一遍别人运用component的视频,然后自己动手做。
结果到处报错,页面一直呈现不出来。我有点香菇的感觉。
后来,一点点的页面露出来了,回过头看看,又有些想笑,都是些弱智的问题。
弱智一:
wxml里属性名用小驼峰在那里,导致页面不显示。你可能会说看报错信息,不好意思,错误地方太多,报错还没显示到它。

注意:在 properties 定义段中,属性名采用驼峰写法(propertyName);在 wxml 中,指定属性值时则对应使用连字符写法(component-tag-name property-name=“attr value”),应用于数据绑定时采用驼峰写法(attr="")。

弱智二:
后来我索性不引入index.html我先调试一下component的样式看看,又报错说找不到
component.wxml是不是在pages.json里没有注册,我就在里面注册写路径,后来显示的时候,不用在pages.json里注册就可以(,我暂且这样认为了)。它是通过引入它的页面(像index.wxml)显示的。
弱智三:
后来页面显示了文字,却没有图片,数据绑定SRC的双括号我写在了image标签之间value值的位置了。

来点官方的东西:

Component(Object object)
创建自定义组件,接受一个 Object 类型的参数。

参数
Object object

定义段类型是否必填描述
propertiesObject Map组件的对外属性,是属性名到属性设置的映射表
dataObject组件的内部数据,和 properties 一同用于组件的模板渲染
observersObject组件数据字段监听器,用于监听 properties 和 data 的变化,参见 数据监听器
methodsObject组件的方法,包括事件响应函数和任意的自定义方法,关于事件响应函数的使用,参见 组件间通信与事件
behaviorsString Array类似于mixins和traits的组件间代码复用机制,参见 behaviors

代码示例

Component({

  behaviors: [],

  // 属性定义
  properties: {
    myProperty: { // 属性名
      type: String,
      value: ''
    },
    myProperty2: String // 简化的定义方式
  },
  
  data: {}, // 私有数据,可用于模板渲染
  methods: {    }
})

官方示例代码里还有component的生命周期函数,适当降低一下难度,看起来也更清晰一些,我把他们删除了,并且我练习的几个小组件里也没有用到它的生命周期函数。
如上示例代码:
data里的数据是用于模板渲染,引用模板的页面的动态数据通过component的properties建立联系,如果有同名的properties的优先级高,也很好理解,data里的数据相当于模板的初始数据,实际想呈现的效果覆盖初始数据是合理的,如果没有,就显示data里的默认数据。
每一个属性又是一个对象,有type、value、observe,三个属性,且有简写形式,只写属性名和对应类型的形式。

properties 定义
定义段类型是否必填描述
type属性的类型
optionalTypesArray属性的类型(可以指定多个)
value属性的初始值
observerFunction属性值变化时的回调函数
  • 属性值的改变情况可以使用 observer 来监听。目前,在新版本基础库中不推荐使用这个字段,而是使用 Component 构造器的 observers 字段代替,它更加强大且性能更好。

  • 属性的类型可以为 String Number Boolean Object Array 其一,也可以为 null 表示不限制类型。

  • 多数情况下,属性最好指定一个确切的类型。这样,在 WXML 中以字面量指定属性值时,值可以获得一个确切的类型

要在那个WXML页面引用component,先在该页面对应的json文件里注册:

{
   "usingComponent" :{
              "d-bigImage" : " //路径 "
                            }
}

在WXML里引入标签

<d-bigImages />

标签名要和usingComponent的属性名一致,取什么名,没有明确的限制,就看你个人的代码素养了。为了区分固有标签和突出是自定义标签,加了连字符,前面可以是你的名字或公司名的缩写。路径则是你要引入模板的路径。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值