发表于: 2019-03-25 23:24:30

2 532


今天完成的事情:(一定要写非常细致的内容,比如说学会了盒子模型,了解了Margin) 

关于小程序的模板 template 

类似于vue的模块化,区别在于不能够在模板中定义Js

需要依次定义和引入wxml文件和wxss文件, 注意引入标签后面的结尾 / 必须加上

定义一个模板:

wxml文件:使用 <template name="模板名字"> </template>

<template name="postItem">

   <view 

      <image src='/images/1.png'

      <text

   </view>

</template>


在需要使用模板的页面引入该模板:

 

wxml文件中引入模板的wxml文件:使用 <import src="绝对路径/相对路径" /> 

使用模板位置使用 

<template is="模板的名字" data="传递的数据" /> 传递的值如果是默认的 item, 可以简写为 data = {{... item}} 则模板里面可以直接使用变量名,不需要 item . 变量名

<block wx:for="{{local_key}}" wx:for-item="item" wx:key="unique">

    <template is="postItem" data="{{item}}"/>

  </block>


wxss文件中引入模板的wxss文件:使用  @import '相对路径/绝对路径'



组件模板

在组件模板中可以提供一个 <slot> 节点,用于承载组件引用时提供的子节点。

在组件定义时的选项中启用多slot支持

Component({

  options: {

    multipleSlots: true // 在组件定义时的选项中启用多slot支持

  },

  properties: { /* ... */ },

  methods: { /* ... */ }

})

可以在这个组件的wxml中使用多个slot,以不同的 name 来区分。

使用时,用 slot 属性来将节点插入到不同的slot上。

1)组件和引用组件的页面不能使用id选择器(#a)、属性选择器([a])和标签名选择器,请改用class选择器。

2)组件和引用组件的页面中使用后代选择器(.a .b)在一些极端情况下会有非预期的表现,如遇,请避免使用。

3)子元素选择器(.a>.b)只能用于 view 组件与其子节点之间,用于其他组件可能导致非预期的情况。

4)继承样式,如 font 、 color ,会从组件外继承到组件内。

5)除继承样式外, app.wxss 中的样式、组件所在页面的的样式对自定义组件无效

组件希望接受外部传入的样式类(类似于 view 组件的 hover-class 属性)。此时可以在 Component 中用 externalClasses 定义段定义若干个外部样式类。



Component构造器

properties ,组件的对外属性,是属性名到属性设置的映射表,属性设置中可包含三个字段, type 表示属性类型、 value 表示属性初始值、 observer 表示属性值被更改时的响应函数

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

组件事件

自定义组件触发事件时,需要使用 triggerEvent 方法,指定事件名、detail对象和事件选项

behaviors

每个 behavior 可以包含一组属性、数据、生命周期函数和方法,组件引用它时,它的属性、数据和方法会被合并到组件中,生命周期函数也会在对应时机被调用。每个组件可以引用多个 behavior 。 behavior 也可以引用其他 behavior 。

behavior 需要使用 Behavior() 构造器定义。

wx://form-field 代表一个内置 behavior ,它使得这个自定义组件有类似于表单控件的行为。

组件间关系

父子组件有相互间的关系,相互间的通信往往比较复杂。此时在组件定义时加入 relations 定义段,可以解决这样的问题(通过relation来告诉组件他的父节点是谁 或者 他的子节点是谁)

relations中type选项:目标组件的相对关系,可选的值为 parent 、 child 、 ancestor 、 descendant



明天计划的事情:(一定要写非常细致的内容) 

复习总结
遇到的问题:(遇到什么困难,怎么解决的) 
收获:(通过今天的学习,学到了什么知识)

小程序自定义组件




返回列表 返回列表
评论

    分享到