微信小程序-behaviors

简介: 什么是 behaviors• behaviors 是用于组件间代码共享的特性,类似于一些编程语言中的 “mixins”• 每个 behavior 可以包含一组属性,数据,生命周期函数和方法,组件引用它时,它的属性,数据和方法会被合并到组件中,生命周期函数也会在对应时机被调用。每个组件可以引用多个 behavior,behavior 也可以引用其它 behavior。

什么是 behaviors

  • behaviors 是用于组件间代码共享的特性,类似于一些编程语言中的 “mixins”
  • 每个 behavior 可以包含一组属性,数据,生命周期函数和方法,组件引用它时,它的属性,数据和方法会被合并到组件中,生命周期函数也会在对应时机被调用。每个组件可以引用多个 behavior,behavior 也可以引用其它 behavior。


?> 大白话:用来封装多个组件中相同的冗余代码


新建两个组件,一个叫 c-test,一个为 c-demo,两个组件的内容大致就是有一个 counter 变量,每一个组件中有两个按钮,一个按钮点击对 counter 进行增加,一个对 counter 进行减少,然后我们可以将这种冗余的代码进行使用 behavior 进行封装复用,我这里就没有用案例去引出 behavior 的方式进行讲解了,我只是体现这一下 behavior 这个知识点的运用。


?> myBehaviors.js

// myBehavior.js
export const counterBehavior = Behavior({
  data: {
    counter: 0
  },
  methods: {
    increase() {
      this.setData({counter: this.data.counter + 1});
    },
    decrease() {
      this.setData({counter: this.data.counter - 1});
    }
  }
});


?> c-test

// components/c-test/c-test.js
import {counterBehavior} from "../../behaviors/myBehaviors";
Component({
  behaviors: [counterBehavior]
})


<!--components/c-test/c-test.wxml-->
<text>{{counter}}</text>
<button bindtap="increase">我是c-test按钮 increase</button>
<button bindtap="decrease">我是c-test按钮 decrease</button>


?> c-demo

// components/c-demo/c-demo.js
import {counterBehavior} from "../../behaviors/myBehaviors";
Component({
  behaviors: [counterBehavior]
})


<!--components/c-demo/c-demo.wxml-->
<text>{{counter}}</text>
<button bindtap="increase">我是c-demo按钮 increase</button>
<button bindtap="decrease">我是c-demo按钮 decrease</button>


?> index

<!--index.wxml-->
<myTest />
<view/>
<myDemo />


{
  "usingComponents": {
    "myTest": "/components/c-test/c-test",
    "myDemo": "/components/c-demo/c-demo"
  }
}


参考文章


官方文档:https://developers.weixin.qq.com/miniprogram/dev/reference/api/Behavior.html


!> 最终 behavior 是将中的内容分别复制了一份放到了对应使用的组件当中

目录
相关文章
|
6月前
|
小程序 JavaScript
【微信小程序】-- 自定义组件 - behaviors(三十九)
【微信小程序】-- 自定义组件 - behaviors(三十九)
|
小程序 JavaScript
微信小程序开发入门与实战(Behaviors使用)
微信小程序开发入门与实战(Behaviors使用)
微信小程序开发入门与实战(Behaviors使用)
|
小程序
微信小程序:Error: Behaviors should be constructed with Behavior()
微信小程序:Error: Behaviors should be constructed with Behavior()
733 0
|
1月前
|
移动开发 小程序 数据可视化
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
220 3
|
1月前
|
小程序 API
微信小程序更新提醒uniapp
在小程序开发中,版本更新至关重要。本方案利用 `uni-app` 的 `uni.getUpdateManager()` API 在启动时检测版本更新,提示用户并提供立即更新选项,自动下载更新内容,并在更新完成后重启小程序以应用新版本。适用于微信小程序,确保用户始终使用最新版本。以下是实现步骤: ### 实现步骤 1. **创建更新方法**:在 `App.vue` 中创建 `updateApp` 方法用于检查小程序是否有新版本。 2. **测试**:添加编译模式并选择成功状态进行模拟测试。
48 0
微信小程序更新提醒uniapp
|
3月前
|
小程序 前端开发 Java
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
JavaDog Chat v1.0.0 是一款基于 SpringBoot、MybatisPlus 和 uniapp 的简易聊天软件,兼容 H5、小程序和 APP,提供丰富的注释和简洁代码,适合初学者。主要功能包括登录注册、消息发送、好友管理及群组交流。
105 0
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
|
3月前
|
小程序 前端开发 JavaScript
【项目实战】SpringBoot+uniapp+uview2打造一个企业黑红名单吐槽小程序
【避坑宝】是一款企业黑红名单吐槽小程序,旨在帮助打工人群体辨别企业优劣。该平台采用SpringBoot+MybatisPlus+uniapp+uview2等技术栈构建,具备丰富的注释与简洁的代码结构,非常适合实战练习与学习。通过小程序搜索“避坑宝”即可体验。
103 0
【项目实战】SpringBoot+uniapp+uview2打造一个企业黑红名单吐槽小程序
|
3月前
|
存储 小程序 JavaScript
|
4月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的汉服交易小程序的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的汉服交易小程序的详细设计和实现(源码+lw+部署文档+讲解等)
62 7
|
4月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的宠物医院微信小程序的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的宠物医院微信小程序的详细设计和实现(源码+lw+部署文档+讲解等)
82 7