小程序--behavior组件继承

本文介绍了在微信小程序开发中如何通过behavior组件继承来提取公共行为,减少冗余代码,提高代码复用和维护性。以properties为例,详细阐述了如何创建公共的behavior文件并引入到多个组件中,使得组件能继承并统一处理相同的属性。同时,文章还提醒了继承行为时的覆盖规则及其特殊情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在做小程序项目时,一个页面可能会拆分成很多组件去完成,一是方便代码复用,二是利于后期维护更新,使代码结构变得更为简洁。

提取公共行为,实现行为的继承
  • 使用场景:在做项目时,往往会遇到多个组件中,有一部分行为是多个组件同时存在的,有可能是properties、data、methods以及一些生命周期函数内的行为。
  • 解决办法:去除冗余代码,提取公共行为,实现组件继承;

举个?:
现有A、B、C三个组件,分别都存在页面传入的properties相同属性,如下:
三个组件的js代码:

Component({
  /**
   * 组件的属性列表
   */
  properties: { // 页面传入数据
  	img: String,
    content: String
  },

  /**
   * 组件的初始数据
   */
  data: {
  },

  /**
   * 组件的方法列表
   */
  methods: {
  }
})

此时,我们可以对properties行为做公共提取,使结构更简洁,后期维护过程中,如果传入参数有变化,也只需要修改一处即可。

新建一个公共的behavior文件:public-beh.js

// 定义行为
let publicBeh = Behavior({
  /**
   * 组件的属性列表
   */
  properties: {
    img: String,
    content: String
  }
})

export { publicBeh } // 导出定义的行为

在A、B、C组件的js文件里引入公共行为文件:

import { publicBeh } from '../public-beh.js'
Component({
  // 继承公共行为
  behaviors: [publicBeh], // 可同时继承多个行为,比如[beh1, beh2, beh3 ...]
  /**
   * 组件的属性列表
   */
  properties: { // 删去原来在自身组件中定义的属性,使用继承的公共属性
  },

  /**
   * 组件的初始数据
   */
  data: {
  },

  /**
   * 组件的方法列表
   */
  methods: {
  }
})

结语:这里只是拿properties给大家举个例子,behaviors继承同样也能继承data、methods、生命周期函数等行为,使用方法都是类似的。

注:

  • 1.当组件继承多个相同行为时,或者当组件继承了某一行为,但自身组件里又定义了相同的行为,此时自身组件里的行为会覆盖继承的行为,与es6中类的继承同理。
  • 2.特殊情况:对于生命周期函数–子继承父行为时,不会产生覆盖现象,会依次执行,其他情况定义的数据则会产生覆盖。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值