微信小程序 - 自定义components组件详解A篇
官网API:https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/component.html
自定义组件的原因,可以重复使用,只有数据不同且模板一样,节约开发成本.
wxml
<!--logs.wxml-->
<swiper-banner Height="400rpx" Width="100%" imgList="{{banners}}" url="picUrl"></swiper-banner>
js
Page({
/**
* 页面的初始数据
*/
data: {
banners: [], //轮播数组
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function(options) {
this.getBanners();
},
/**
* 拉取图片
*/
//获取轮播图片
getBanners() {
var self = this;
wx.request({
url: 'https://api.it120.cc/jy02149522/banner/list',
data: {
type: 0
},
success(res) {
console.log(res);
if (res.data.code == 0) {
self.setData({
banners: res.data.data
})
}
}
})
}
})
json
{
"usingComponents": {
"swiper-banner": "../../components/swiper-banner/index"
}
}
我们再来看看模板的代码
wxml
<view class='swiper'>
<swiper indicator-dots="true" autoplay="true" interval="5000" duration="1000" style="height:{{Height}};width:{{Width}};">
<block wx:for="{{imgList}}" wx:key="*this">
<swiper-item>
<image src="{{item[url]}}" class="slide-image" mode="aspectFill" />
</swiper-item>
</block>
</swiper> <button bindtap='m'>触发methods里面的方法</button>
</view>
js
Component({
// 私有数据
data: {
},
// 方法
methods: {
m() {
console.log('触发了!');
}
},
// 生命周期函数,可以为函数,或一个在methods段中定义的方法名
lifetimes: {
attached: function() {
console.log('attached');
},
moved: function() {},
detached: function() {},
},
// 组件所在页面的生命周期函数
pageLifetimes: {
show: function() {
console.log('生命show!');
},
},
// 变量替换以及修改
properties: {
imgList: {
type: Array,
value: [],
observer: function(newVal, oldVal) {
this.setData({
imgList: newVal
})
}
},
url: {
type: String,
value: ''
},
Height: String,
Width:String
}
})
json
{
"component": true
}
wxss
.swiper image{
width: 100%;
}
总结
1. methods里面写方法
2. data初始化变量
3. 但凡变量都和properties脱不了关系
4. 渲染数据应来源于导入组件的页面
5. 被导入的组件必须在json文件定义
{
"component": true
}
6. 引入组件的页面必须在json文件导入对应的组件路径以及名称
{
"usingComponents": {
"swiper-banner": "../../components/swiper-banner/index"
}
}
微信小程序 - 自定义components组件详解A篇的更多相关文章
- 微信小程序自定义音频组件,自定义滚动条,单曲循环,循环播放
小程序自定义音频组件,带滚动条 摘要:首先自定义音频组件,是因为产品有这样的需求,需要如下样式的 而微信小程序API给我们提供的就是这样的 而且产品需要小程序有后台播放功能,所以我们不考虑小程序的 a ...
- 微信小程序 自定义导航组件 nav头部 全面屏设计
nav-dynamic 微信小程序自定义nav头部组件:适配全面屏设计: 实现功能 初始进入页面时,展示初始状态下的nav样式: 页面滚动时,监听页面滚动事件,展示滚动状态下的nav样式: 根据配置字 ...
- 微信小程序项目wx-store代码详解
这篇文章会很长,非常长,特别长,无敌长. 真的是挤牙膏般的项目进度,差不多是8月底有开始这个项目的想法,时至今日都1个多月了,抛去频繁的加班时间,王者时间,羽毛球时间...见缝插针的写这个项目,我竟然 ...
- 微信小程序--问题汇总及详解之form表单
附上微信小程序开发文档链接:https://mp.weixin.qq.com/debug/wxadoc/dev/framework/MINA.html form表单: 当点击 <form/> ...
- 微信小程序 this和that详解及简单实例
微信小程序中,在wx.request({});方法调用成功或者失败之后,有时候会需要获取页面初始化数据data的情况,这个时候,如果使用,this.data来获取,会出现获取不到的情况,调试页面也会报 ...
- 微信小程序获取用户手机号详解
最近在做一款微信小程序,需要获取用户手机号,具体步骤如下: 流程图: 1.首先,客户端调用wx.login,回调数据了包含jscode,用于获取openid(用户唯一标识)和sessionkey(会话 ...
- 【微信小程序】支付过程详解
一.介绍 今天跟大家分享微信小程序集成支付. 二.分析 1.小程序支付API 地址:https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-pay.html ...
- 微信小程序支付之代码详解
微信小程序自带的一套规则,类似vue语法,但是好多功能都集成在api中,给了很多初学者轮子,所以首先要熟悉这些api,忘记可照官网继续开发 这里主要说下微信小程序的支付,原理类似上篇介绍的公众网页支付 ...
- 微信小程序——自定义图标组件
字体图标在网页中非常常见了.为了方便在小程序里面重复使用,自定义了一个图标组件,方便控制它的大小,颜色,自定义点击事件. 自定义图标组件的代码如下: 下面的代码是icon文件夹下面的4个文件 inde ...
随机推荐
- 【manacher+FFT】BZOJ3160-万径人踪灭
[题目大意] 在一个仅仅含有a,b的字符串里选取一个子序列,使得: 1.位置和字符都关于某条对称轴对称: 2.不能是连续的一段. [思路] 不连续的回文串的个数=总的回文串个数-连续回文串的个数. 后 ...
- 压测工具Siege
一.下载 http://www.joedog.org/ http://www.joedog.org/pub/siege/siege-2.70.tar.gz 二.测试 siege -c200 -r10 ...
- JavaScript设计模式与开发实践——读书笔记1.高阶函数(上)
说来惭愧,4个多月未更新了.4月份以后就开始忙起来了,论文.毕设.毕业旅行等七七八八的事情占据了很多时间,毕业之后开始忙碌的工作,这期间一直想写博客,但是一直没能静下心写.这段时间在看<Java ...
- [转]用 Jsp 的 Session 机制编写的购物车程序
一.构建的商品类 //写一个Goods类,并定义商品的各个属性,返回商品属性的方法,以及商品对象进行比较的方法//Goods.java package com.viita.Shop; public c ...
- kali下更新软件时,总是报错,说下列签名无效 解决办法
解决办法就是重新获取下签名key wget -q -O - https://archive.kali.org/archive-key.asc | apt-key add
- CXF生成调用webservice的客户端
首先当前是从官网下载cxf组件. http://cxf.apache.org/download.html 下载后解压,在这里主要是用到解压后的bin目录中的wsdl2java.bat该批处理文件. 可 ...
- NSDictionary , NSMutableDictionary, NSMutableDictionary 和 NSMutableSet)相当于java的map、set
1 NSDictionary 和 NSMutableDictionary NSDictionary :就是java中的map; 放入对象是键值对 key-value , 同样 秉持了一样的原则,只 ...
- The useful App Paths registry key : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths how to load BPLs without writ ...
- springMvc的一些简介 和基于xml的handlerMapping基本流程
其它步骤就不在介绍了 在大多数情况,都会使用基于annotation的方式进行HandlerMapping处理,在这里基于对这个流程的了解,就采用了基于xml配置了一个HandlerMapping & ...
- ubuntn 内核升级到LINUX v4.11.8:
升级到LINUX v4.11.8: http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.11.8/linux-headers-4.11.8-041108_ ...