微信小程序简单封装图片上传组件
微信小程序简单封装图片上传组件
希望自己 “day day up” -----小陶
我从哪里来
在写小程序的时候需要上传图片,个人觉得官方提供的 Uploader 组件不是太好用,于是乎,看了官方文档,自己封装一个组件。
我是谁
直接上主题
在根目录下创建components文件夹
在components下开始创建自己的组件
效果图如下:

由于我使用的是flex布局,所以

我从哪里来
# wxml
<view class="images-box">
<view class="imageCount">
<text>上传图片:</text>
<text style="color:#909399">{{addedCount}}/{{count}}</text>
</view>
<view class="images">
<block wx:for="{{images}}" wx:key="index">
<image class="image" mode="aspectFill" src="{{item}}" bindtap="previewImage" data-index="{{index}}" bindlongpress="deleteImage"></image>
</block>
<view wx:if="{{addedCount<3}}" class="image addImageIcon" hover-class="addImageIconHover" hover-stay-time="200" bindtap="chooseImage">
<mp-icon type="field" icon="add" color="gray" size="{{40}}"></mp-icon>
</view>
</view>
</view>
# js
Component({
// 组件对外属性
properties: {
// 图片总数量
count: {
type: Number,
value: 3,
observers: function (newVal, oldVal) {}
},
// 图片临时访问路径集合
images: {
type: Array,
value: []
},
// 已经添加的图片数量
addedCount: {
type: Number,
value: 0,
observers: function (newVal, oldVal) {
console.log('--new--'.newVal, '--old--', oldVal)
}
},
// 当前图片的位置下标
currentIndex: {
type: Number,
value: 0,
}
},
// 组件内部属性
data: {
},
// 方法
methods: {
// 选择图片
chooseImage() {
this.triggerEvent('chooseImage')
},
// 预览图片
previewImage(e) {
wx.previewImage({
urls: this.data.images,
current: this.data.images[e.currentTarget.dataset.index]
})
},
// 删除图片
deleteImage(e){
this.triggerEvent('deleteImage',e.currentTarget.dataset.index)
}
}
})
# wxss
.images-box {
border-radius: 10rpx;
width: 100%;
}
.imageCount {
height: 80rpx;
line-height: 80rpx;
}
.images {
height: 240rpx;
display: flex;
align-items: center;
justify-content: space-between;
}
.addImageIcon{
text-align: center;
line-height: 200rpx;
background-color: #f7f7f7;
}
.addImageIconHover{
background-color: #C0C4CC;
}
.image {
width: 30%;
border-radius: 10rpx;
height: 200rpx;
}
# json
{
"component": true,
"usingComponents":{
"mp-icon": "/miniprogram_npm/weui-miniprogram/icon/icon"
}
}
我要到哪里去
此代码只是一个很小的功能,代码这东西千变万化,在不同的人手中就会绽放不同程度的光彩,我希望,有一天,我的光彩会越来越亮。
微信小程序简单封装图片上传组件的更多相关文章
- 微信小程序:多张图片上传
最近在写小程序的相册,需要多张图片的上传.因为小程序不支持数组的多张图片同时上传,然后根据自己的需求+借鉴网上各位大神的案例,总算搞定.分享下,不足之处,多多指教哦 页面wxml: <form ...
- 微信小程序入门八头像上传
1. action-sheet 底部弹出可选菜单组件 2. wx.uploadFile 将本地资源上传到服务器 3. wx.chooseImage 从本地相册选择图片或使用相机拍照. 4. wx.pr ...
- 微信小程序--更换用户头像/上传用户头像/更新用户头像
changeAvatar:function (){ var that=this; wx.chooseImage({ count: 1, // 默认9 sizeType: ['original', 'c ...
- React后台管理手动封装图片上传组件
分为两个文件夹,index.js(逻辑文件) styled.js(样式文件) index.js文件,编写完成之后在对应的地方引入即可 import React from "react&quo ...
- UEditor之实现配置简单的图片上传示例
UEditor之实现配置简单的图片上传示例 原创 2016年06月11日 18:27:31 开心一笑 下班后,阿华到楼下小超市买毛巾,刚买完出来,就遇到同一办公楼里另一家公司的阿菲,之前与她远远的有过 ...
- 微信小程序点击图片放大预览
微信小程序点击图片放大预览使用到 wx.previewImage 接口,可以放大.上/下一张 上代码 wxml代码 <view class='content-img' wx:if="{ ...
- 微信小程序 在canvas画布上划动,页面禁止滑动
要实现微信小程序 在canvas画布上划动,页面禁止滑动,不仅要设置disable-scroll="true",还要要给canvas绑定一个触摸事件才能生效. <canvas ...
- 微信小程序:封装全局的promise异步调用方法
微信小程序:封装全局的promise异步调用方法 一:封装 function POST(url, params) { let promise = new Promise(function (resol ...
- 一、简单的图片上传并预览功能input[file]
一.简单的图片上传并预览功能input[file] <!DOCTYPE html> <html lang="en"> <head> <me ...
随机推荐
- Python练习题 016:猴子吃桃
[Python练习题 016] 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个.第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到 ...
- 硬核测试:Pulsar 与 Kafka 在金融场景下的性能分析
背景 Apache Pulsar 是下一代分布式消息流平台,采用计算存储分层架构,具备多租户.高一致.高性能.百万 topic.数据平滑迁移等诸多优势.越来越多的企业正在使用 Pulsar 或者尝试将 ...
- HTML & CSS & JavaScript 从一个表格到一个灰阶颜色表 03
工具1:HBuilder X 1.9.9.20190522 工具2:火狐浏览器 67.0.4 (64 位) 其实,我还想使用表格,做一个这样的颜色表,如下图所示: 如果按照之前的做法,把每一种颜色都列 ...
- C#怎么从List集合中随机取出其中一个值
1.首先在该命名空间下创建一个实体,和在Main方法下List集合,为后续做准备: /// <summary> /// 实体 /// </summary> public cla ...
- Navicat连接MySQL报错-2059
解释原因:据说,mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password, 解决问题方法有两种,一种是 ...
- 每日一题 LeetCode 491. 递增子序列 【递推】【递增子序列】【动态规划】
题目链接 https://leetcode-cn.com/problems/increasing-subsequences/ 题目说明 题解 主要方法:递推:动态规划 解释说明: 数据表示:观察数据范 ...
- GC调优-XX:PrintGCDetails深度解析
查看程序运行GC的运行情况 资源充足的GC情况 新生代 老年代 元空间 因为现在资源充足没有发生GC *案例:将JVM初始化内存与最大内存(防止内存抖动,反复GC)调至10m,new一个50m的数组对 ...
- VMware安装的Linux系统忘记密码 怎么修改root密码
因为昨天新安装过虚拟机设置了新的密码,再加上我好长时间没有用自己旧的虚拟机,导致忘记了密码,原来虽然知道在单用模式下,找回密码,但是确实是自己从来都没有做过,还好我们组大手飞翔哥告诉了我,怎么找回ro ...
- 多测师讲解自动化--rf断言(下)--_高级讲师肖sir
1.Page Should Contain 1.1存在页面上的内容 1.2 不存在页面上的内容, 运行抛异常 1.3 Page Should Not Contain 1.4 1.5 输入页面元素,判断 ...
- Springboot+JPA下实现简易爬虫:豆瓣电视剧数据
Springboot+JPA下实现简易爬虫:豆瓣电视剧数据 前言:今天听到产品那边讨论一些需求,好像其中一点是用户要求我们爬虫,在网页上抓取一些数据然后存到我们公司数据库中,众所周知,爬虫的实现对于p ...