微信小程序之自定义组件的应用
小程序支持自定义组件,下面是一个简单的购物车组件,实现的效果如图:
效果图

创建组件
在根目录创建components目录,然后创建计数组件 count 如图:

组件内容
<!--components/count/count.wxml-->
<view class='count'>
<view class='del' bindtap='bindDel'> - </view>
<view class='num'> {{num}} </view>
<view class='add' bindtap='bindAdd'> + </view>
</view>
/* components/count/count.wxss */
.count {
border: 1px solid #bbb;
width: 400rpx;
padding: 40rpx;
display: flex;
align-items: center;
justify-content: center;
}
.count view {
font-size: 36rpx;
height: 80rpx;
width: 80rpx;
border: 1px solid #dfdcdc;
display: flex;
align-items: center;
justify-content: center;
}
.del, .add {
background: #dfdcdc;
}
.count .num {
color: #f22
}
count.json:
{
"component": true,
"usingComponents": {}
}
// components/count/count.js
Component({
/**
* 组件的属性列表
*/
properties: {
num: { // 属性名
type: Number, // 类型(必填),目前接受的类型包括:String, Number, Boolean, Object, Array, null(表示任意类型)
value: 0 // 属性初始值(可选
},
},
/**
* 组件的初始数据
*/
data: {
},
/**
* 组件的方法列表
*/
methods: {
bindDel () {
let { num } = this.data
if (num < 1) {
return
}
this.setData({
num: num - 1
})
this.triggerEvent('changeCount', this.data.num) // 自定义组件触发事件时,需要使用 triggerEvent 方法, 这里触发父组件的changeCount方法,后面的this.data.num传递给父组件
},
bindAdd () {
let { num } = this.data
this.setData({
num: num + 1
})
console.log(num, this.data.num)
this.triggerEvent('changeCount', this.data.num) // 自定义组件触发事件时,需要使用 triggerEvent 方法
}
}
})
组件引入
在父组件index中引入组件:
index.wxml:
<view style="margin: 20rpx 0;"> ------ 父组件 ------ </view>
<view>单价:{{price}}</view>
<view>总价:{{price * num}}</view>
<view style="margin: 180rpx 0 30rpx;"> ------ 子组件 ------ </view>
<!-- 当自定义组件触发“changeCount”事件时,调用“onChangeCount”方法 -->
<count num='{{num}}' bind:changeCount='onChangeCount'></count>
注册组件:
index.json:
{
"usingComponents": {
"count": "/components/count/count"
}
}
index.js:
Page({
data: {
num: 1,
price: 50
},
onChangeCount (e) {
console.log(e.detail) // e.detail可以拿到组件通过this.triggerEvent传出来的数据
this.setData({
num: e.detail
})
}
})
微信小程序之自定义组件的应用的更多相关文章
- 微信小程序之自定义组件
在微信小程序项目中 肯定会存在很多功能和样式上相似的部分 面对这种情况 只是单单的ctrl+c ctrl+v 就显得很low了,而且也不便于后期维护那么这时候 使用微信小程序中的自定义组件功能就很合适 ...
- 微信小程序:自定义组件
为什么要学习自定义组件? 1.用上我自己的单词abc,我希望在页面中展示椭圆形的图片, 2.打开手机淘宝,假如现在要做一个企业级项目,里面有很多页面,首页存在导航模块,点击天猫,进入第二个页面,而第二 ...
- 微信小程序覆盖自定义组件样式
小程序官方文档明确指出,引入的第三方自定义组件,是不可以对其进行CSS样式覆盖的,但是我们还想要修改怎么办呢?自定义组件时会之定义个外部类,通过这个外部类来修改样式. 修改https://weapp. ...
- 微信小程序:自定义组件的数据传递
一.前言 如果小程序中有可复用的UI且具有一定的功能性,就可以使用自定义组件将其封装起来.下面介绍一个简单的组件和一个复杂的组件. 二.简单的组件(计数器) 1. 组件功能介绍 这个组件常见于外卖软件 ...
- 微信小程序开发---自定义组件
开发者可以将页面内的功能模块抽象成自定义组件,以便在不同的页面中重复使用:也可以将复杂的页面拆分成多个低耦合的模块,有助于代码维护.自定义组件在使用时与基础组件非常相似. 创建自定义组件 类似于页面, ...
- 微信小程序之自定义组件与使用
一般我们在定义了一个组件之后,为了复用,需要将它导出以提供给其他页面使用. 组件导出的关键字是 exprot default 没有加default时,例如: export class Template ...
- 微信小程序里自定义组件,canvas组件没有效果
methods: { /** * el:画圆的元素 * r:圆的半径 * w:圆的宽度 * 功能:画背景 */ drawCircleBg: function (el, r, w) { const ct ...
- 微信小程序中的组件使用1
不管是vue还是react中,都在强调组件思想,同样,在微信小程序中也是使用组件思想来实现页面复用的,下面就简单介绍一下微信小程序中的组件思想. 组件定义与使用 要使用组件,首先需要有组件页面和使用组 ...
- 【小程序】小程序开发自定义组件的步骤>>>>>>>>>小程序开发过程中报错:jsEnginScriptError
报错:jsEnginScriptError VM6342: jsEnginScriptError Component is not found in path "component/spac ...
随机推荐
- 【three.js练习程序】旋转、缩放场景
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- LeetCode题解之Remove Nth Node From End of List
1.题目描述 2.问题分析 直接计算,操作. 3.代码 ListNode* removeNthFromEnd(ListNode* head, int n) { if (head == NULL) re ...
- Knockout学习,添加模板,事件,Mouseover,mouseout
<div class="rtitle">我的收藏</div> <div class="list_ul" data-bind=&qu ...
- Oracle EBS SLA取值
-- 从GL总账追溯到 => 子分类账SLA => 子模块AP.AR等 SELECT xep.name, -- 法人主体 xep.legal_entity_identifier, -- 法 ...
- 十个强大的DevOps基础设施自动化工具,不容错过
Devops基础设施自动化的工具 有许多工具用于基础设施自动化.使用哪个工具决定于体系结构和基础设施的需求.下面我们列出了一些伟大的工具,用于不同类别配置管理.编制.持续集成.监控等. 1.Chef ...
- 【排序算法】冒泡排序(Bubble Sort)
0. 说明 参考 维基百科中的冒泡排序 冒泡排序 (Bubble Sort) 是与插入排序拥有相等的执行时间,但是两种算法在需要的交换次数却很大地不同. 在最坏的情况,冒泡排序需要 O(n2) 次交 ...
- 模拟的confirm
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title> ...
- sublime设置node.js编译
1. 首先需安装node环境并配置好环境变量,安装教程. 2. 然后在sublime中打开工具(Tools)→编译系统(Build System)→新编译系统(New Build System) 3. ...
- 如何将XML文件导入Excel中
如下图所示为一个规范的XML文件,在Excel中可以将规范的XML文件导入到Excel成为规范的表格.具体有如下几种方法: 工具/原料 Excel 方法/步骤 单击“数据”选项卡下的“ ...
- Publisher和Subscriber节点
一.Publisher节点 /*"ros/ros.h"里面包含了ROS系统内最常用的一些头文件,包含此文件,便可以使用ROS的核心功能.*/#include "ros/r ...