微信小程序-behaviors
什么是 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 是将中的内容分别复制了一份放到了对应使用的组件当中
微信小程序-behaviors的更多相关文章
- 【微信小程序项目实践总结】30分钟从陌生到熟悉
前言 我们之前对小程序做了基本学习: 1. 微信小程序开发07-列表页面怎么做 2. 微信小程序开发06-一个业务页面的完成 3. 微信小程序开发05-日历组件的实现 4. 微信小程序开发04-打造自 ...
- 微信小程序开发06-一个业务页面的完成
前言 接上文:微信小程序开发05-日历组件的实现 github地址:https://github.com/yexiaochai/wxdemo 这里来说一说我们的理念,我们也学习小程序开发有一周多了,从 ...
- 微信小程序开发05-日历组件的实现
接上文:微信小程序开发04-打造自己的UI库 github地址:https://github.com/yexiaochai/wxdemo 我们这里继续实现我们的日历组件,这个日历组件稍微有点特殊,算是 ...
- 微信小程序开发03-这是一个组件
编写组件 基本结构 接上文:微信小程序开发02-小程序基本介绍 我们今天先来实现这个弹出层: 之前这个组件是一个容器类组件,弹出层可设置载入的html结构,然后再设置各种事件即可,这种组件有一个特点: ...
- 【微信小程序项目实践总结】30分钟从陌生到熟悉 web app 、native app、hybrid app比较 30分钟ES6从陌生到熟悉 【原创】浅谈内存泄露 HTML5 五子棋 - JS/Canvas 游戏 meta 详解,html5 meta 标签日常设置 C#中回滚TransactionScope的使用方法和原理
[微信小程序项目实践总结]30分钟从陌生到熟悉 前言 我们之前对小程序做了基本学习: 1. 微信小程序开发07-列表页面怎么做 2. 微信小程序开发06-一个业务页面的完成 3. 微信小程序开发05- ...
- 微信小程序 发现之旅(二)—— 自定义组件
组件化的项目开发中,组件应当划分为三个层次:组件.模块.页面 微信小程序已经为开发者封装好了基础组件,页面文件(pages)也有了详细的规定 而模块就需要自行开发,并且要和页面文件区分开,这就涉及到自 ...
- 微信小程序开发中的二三事之网易云信IMSDK DEMO
本文由作者邹永胜授权网易云社区发布. 简介 为了更好的展示我们即时通讯SDK强悍的能力,网易云信IM SDK微信小程序DEMO的开发就提上了日程.用产品的话说就是: 云信 IM 小程序 SDK 的能力 ...
- 微信小程序基础语法总结
本文介绍微信小程序语法 配置文件 app.json的配置(全局) { // 用来配置页面的路径 "pages":[ "pages/index/index", / ...
- 微信小程序(14)--上传图片公用组件(父子传参)
这周整理了一下做微信小程序页面时遇到的一些问题,先说说常见的上传图片吧. 上传图片公用组件 首先要了解的是父子传参. 1.A组件为父组件,B组件为子组件,以下是A组件向B组件传参: 在A组件的json ...
- 微信小程序之组件的集合(三)
看看音乐播放组件是如何实现完成的音乐的播放的!!! 一.音乐music组件的开发 1.页面以及页面样式的开发 // music组件页面开发 <view hidden="{{hidden ...
随机推荐
- PMP 如何获取 PDU PMP 证书续证
PMP 如何获取 PDU. PMP 证书续证 需要准备一张带支付美元的信用卡 打开官网,登录: https://ccrs.pmi.org/ 内容随便填 ,可以到 https://pmichina ...
- HF Hub 现已加入存储区域功能
我们在 企业版 Hub 服务 方案中推出了 存储区域(Storage Regions) 功能. 通过此功能,用户能够自主决定其组织的模型和数据集的存储地点,这带来两大显著优势,接下来的内容会进行简要介 ...
- Hugging News #0925: 一览近期的新功能发布
每一周,我们的同事都会向社区的成员们发布一些关于 Hugging Face 相关的更新,包括我们的产品和平台更新.社区活动.学习资源和内容更新.开源库和模型更新等,我们将其称之为「Hugging Ne ...
- AtCoder ABC 165 D - Floor Function (Good, 手动模拟推出公式)
题目链接:Here 题意: 给出正整数 \(A,B,N (1\le A\le 1e6,1\le B,N\le1e12)\) ,对于 \(x\in [0,N]\) 求出 \(\left\lfloor\f ...
- Codeforces Round #728 (Div. 2) A~C 补题记录
比赛链接:Here 1541A. Pretty Permutations 给定 \(1,2,3,4,...n\) 序列,让每一个数字都不处于原来的位置,但总的移动距离要最小 \(n\) 为偶数的情况 ...
- Mynavi Programming Contest 2021(AtCoder Beginner Contest 201)A ~ E题题解
A - Tiny Arithmetic Sequence 水题,判断3个数是否能构成等差数列 void solve() { int a, b, c; cin >> a >> b ...
- KYOCERA Programming Contest 2021(AtCoder Beginner Contest 200)(AB水题,C思维,D搜索,E DP)
补题链接:Here A - Century 整除 \(200\) 并且判断能否整除完全 B - 200th ABC-200 按题意即可 C - Ringo's Favorite Numbers 2 求 ...
- debian更新openssh 9.6
先更新一下,然后安装libssl-dev zlib1g-dev依赖文件 apt update apt install build-essential apt-get install -y libssl ...
- Go 标准库 net
本篇文章主要介绍 Go 标准库中的 net 包,通过一个小例子介绍常用的 net 包函数/方法 Listen,Accept 和 Dial 等. 1. net 简介 Go 官网对 net 包的定义如下: ...
- 容器网络原理分析:veth 和 network namespace
1. Liunx veth-pair 和 network namespace Docker 中容器的访问需要依赖 veth-pair 和 network namespace 等技术.network n ...