您的位置:首页 > 房产 > 家装 > 门户媒体有哪些_深圳浪尖工业设计公司_知名的搜索引擎优化_做销售怎样去寻找客户

门户媒体有哪些_深圳浪尖工业设计公司_知名的搜索引擎优化_做销售怎样去寻找客户

2025/2/25 6:29:39 来源:https://blog.csdn.net/2301_76662406/article/details/145801435  浏览:    关键词:门户媒体有哪些_深圳浪尖工业设计公司_知名的搜索引擎优化_做销售怎样去寻找客户
门户媒体有哪些_深圳浪尖工业设计公司_知名的搜索引擎优化_做销售怎样去寻找客户

简介:

小程序的 behaviors方法是一种代码复用的方式,可以将一些通用的逻辑和方法提取出来,然后在多个组件中复用,从而减少代码冗余,提高代码的可维护性。

使用 behaviors 复用代码

如果需要复用代码,可以通过 Behavior() 方法定义一个行为,每个行为可以包含属性、数据、生命周期函数和方法。组件引用该行为时,其属性、数据和方法会被合并到组件中,生命周期函数也会在相应时机被调用。

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


具体示例:

一、定义 Behavior

将公共的属性、数据、生命周期函数、方法等,抽取到单独的文件夹 behavior.js中

  • 声明并暴露出去
const Behavior = Behavior({// 属性properties: {label: {type: String,value: '我已同意该协议'}},// 数据data: {name: 'Tom',obj: {name: 'Tyke'}},// 方法methods: {updateName() {this.setData({name: 'Jerry'})}},// 生命周期lifetimes: {attached() {console.log('我是组件的生命周期函数')}}
});
module.exports = Behavior;

二、创建组件:

  • 在component/example/example.js中创建一个组件,引用注册之前定义的Behavior
const behavior = require('../../behaviors/behavior.js');Component({behaviors: [behavior], // 引用行为properties: {customLabel: String // 自定义属性},data: {message: 'Hello Behavior!'},methods: {onTap() {this.updateName(); // 调用行为中的方法console.log(this.data.name); // 输出: Jerry}}
});

注册behavior后,当前被注册组件拥有 behavior中的所有属性、数据、方法,也能触发生命周期

三、组件模版

  • 在component/example/example.wxml 文件中获取数据并渲染
<view><text>{{ label }}: {{ name }}</text> <!-- 使用行为的属性和数据 --><text>{{ customLabel }}</text> <!-- 使用组件的自定义属性 --><text>{{ message }}</text> <!-- 使用组件的数据 --><button bindtap="onTap">更新姓名</button>
</view>

存在了相同项的情况处理

如果在behavior和 当前匿名组件中存储了相同的项,并且项中有相同的变量

此时遵循就近原则(在自定义组件内部定义的会覆盖 behavior.js文件中定义的)

具体情况如下:

  • 存在相同的 properties
    • 就近原则,使用组件内部的数据
  • 存在相同的方法
    • 就近原则,使用组件内部的数据
  • 存在相同的 data
    • 如果是对象类型,属性会进行合并
    • 如果不是对象类型的数据,就近原则,展示的以组件内部为准
  • 存在相同的生命周期函数和observers
    • 生命周期函数都会被触发(不会相互覆盖,会是在对应触发时机被逐个调用,也就是都会被执行)

如果有同名的属性或方法,采用"就近原则",组件会覆盖behavior中的同名属性或方法

如果有同名的数据字段且都是对象类型,会进行对象合并,其余情况会采用“就近原则"进行数据覆盖

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com