《十一》微信小程序中自定义组件的 Component()

: 用来注册自定义组件。接受一个 类型的参数,可以指定组件的属性、数据、方法等。

使用 构造器构造组件:

使用 构造器构造页面:小程序的页面也可以视为自定义组件,因此页面也可以使用 构造器构造,拥有与普通组件一样的定义段与实例方法。

使用 构造器来构造页面的一个好处是可以使用 来提取所有页面中公用的代码段。

此时:

要求对应 文件中包含 定义段。

页面的生命周期方法(即 开头的方法),应写在 定义段中。

组件的属性可以用于接收页面的参数,如访问页面 ,如果有属性 或 ,则它们会被赋值为 123 或 。

组件的生命周期:

组件的生命周期,指的是组件自身的一些函数,这些函数在特殊的时间点或遇到一些特殊的事件时被自动触发。可以直接定义在 构造器的第一级参数中;也可以在 字段内进行(这是推荐的方式,其优先级最高)。

组件的生命周期函数:

:在组件实例刚刚被创建时执行。

此时还不能调用 。

: 在组件实例进入页面节点树时执行。

绝大多数初始化工作可以在这个生命周期进行。

:在组件在视图层布局完成后执行。:在组件实例被到节点树另一个位置时执行。:在组件实例被从页面节点树移除时执行。:每当组件方法抛出错误时执行。

组件所在页面的生命周期:

组件所在页面的生命周期在 定义段中定义。

:组件所在的页面被展示时执行。:组件所在的页面被隐藏时执行。:组件所在的页面尺寸变化时执行。

自定义组件和页面生命周期函数的执行顺序:

页面引用自定义组件,初次加载的生命周期函数执行顺序:

是用于组件间代码共享的特性,类似于一些框架中的 混入。

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

每个组件可以引用多个 , 也可以引用其它 。

定义 :

:注册一个 ,接受一个 类型的参数。

使用 :

组件引用时,在 定义段中将它们逐个列出即可。

中不能使用 。

同名字段的覆盖和组合原则:

组件和它引用的 中可以包含同名的字段,对这些字段的处理方法如下:

如果有同名的属性 或方法 :

若组件本身有这个属性或方法,则组件的属性或方覆盖 中的同名属性或方法;若组件本身无这个属性或方法,则在组件的 字段中定义靠后的 的属性或方覆盖靠前的同名属性或方法;在 2 的基础上,若存在嵌套引用 的情况,则规则为:父 覆盖子 中的同名属性或方法; 如果有同名的数据字段 :

若同名的数据字段都是对象类型,会进行对象合并;其余情况会进行数据覆盖,覆盖规则为:组件 > 父 > 子 、 靠后的 > 靠前的 。(优先级高的覆盖优先级低的,最大的为优先级最高); 生命周期函数不会相互覆盖,而是在对应触发时机被逐个调用:

对于不同的生命周期函数之间,遵循组件生命周期函数的执行顺序;对于同种生命周期函数,遵循如下规则: 优先于组件执行、子 优先于父 执行、靠前的 优先于靠后的 执行;如果同一个 被一个组件多次引用,它定义的生命周期函数只会被执行一次;

内置 :

自定义组件可以通过引用内置的 来获得内置组件的一些行为。

内置 往往会为组件添加一些属性。

在没有特殊说明时,组件可以覆盖这些属性来改变它的 或添加 。

:使自定义组件有类似于表单控件的行为。 组件可以识别这些自定义组件,并在 事件中返回组件的字段名及其对应字段值。:使 组件可以识别到这个自定义组件内部的所有表单控件。:使 组件可以识别到这个自定义组件内部的 。如果自定义组件内部有设置了 的 ,它将被组件外的 接受。:使自定义组件支持 定义段。这个定义段可以用于指定组件被 调用时的返回值。

数据监听器可以用于监听和响应任何属性和数据字段的变化。

数据监听器监听的是 涉及到的数据字段,即使这些数据字段的值没有发生变化,数据监听器依然会被触发。

如果在数据监听器函数中使用 设置本身监听的数据字段,可能会导致死循环。

例如, 永远是 与 的和。此时,可以使用数据监听器进行如下实现:

数据监听器支持监听属性或内部数据的变化,可以同时监听多个。一次 最多触发每个监听器一次。

如果需要监听所有子数据字段的变化,可以使用通配符 。

仅使用通配符 可以监听全部 。

当两个自定义组件之间存在嵌套关系时,可以在两个组件中定义 ,从而可以直接访问对方组件的实例对象。

必须在两个组件中都定义 ,否则不会生效。

定义段包含目标组件路径及其对应选项。选项:

:目标组件的相对关系,可选的值为 、 、 、 。:关系生命周期函数,当关系被建立在页面节点树中时触发,触发时机在组件 生命周期之后。:关系生命周期函数,当关系在页面节点树中发生改变时触发,触发时机在组件 生命周期之后。:关系生命周期函数,当关系脱离页面节点树时触发,触发时机在组件 生命周期之后。:如果这一项被设置,则它表示关联的目标节点所应具有的 ,所有拥有这一 的组件节点都会被关联。

定义组件间关系后,可以通过 方法获取到路径对应的组件实例组成的数组。通过该方法,可以直接获取到关联组件的 属性、 数据等,并且能够调用关联组件中的方法,修改关联组件实例的变量。

当关联组件不止一个的时候,数组会包含所有的组件实例,并按照文档流的顺序排列。

例如: 和 都是自定义组件,它们存在嵌套关系。

纯数据字段是一些不用于界面渲染的 字段,可以用于提升页面更新性能。指定纯数据字段的方法是在 构造器的 定义段中指定 为一个正则表达式,字段名符合这个正则表达式的字段将成为纯数据字段。

有些情况下,某些 和 中的字段既不会展示在页面上,也不会传递给其他组件,仅仅在当前组件内部使用。此时,可以指定这样的数据字段为“纯数据字段”,它们将仅仅被记录在 中,而不参与任何界面渲染过程,这样有助于提升页面更新性能。

可以使用数据监听器监听纯数据字段。

© 版权声明
THE END
分享