微信小程序简单封装图片上传组件

希望自己 “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"
}
}

我要到哪里去

此代码只是一个很小的功能,代码这东西千变万化,在不同的人手中就会绽放不同程度的光彩,我希望,有一天,我的光彩会越来越亮。

微信小程序简单封装图片上传组件的更多相关文章

  1. 微信小程序:多张图片上传

    最近在写小程序的相册,需要多张图片的上传.因为小程序不支持数组的多张图片同时上传,然后根据自己的需求+借鉴网上各位大神的案例,总算搞定.分享下,不足之处,多多指教哦 页面wxml: <form ...

  2. 微信小程序入门八头像上传

    1. action-sheet 底部弹出可选菜单组件 2. wx.uploadFile 将本地资源上传到服务器 3. wx.chooseImage 从本地相册选择图片或使用相机拍照. 4. wx.pr ...

  3. 微信小程序--更换用户头像/上传用户头像/更新用户头像

    changeAvatar:function (){ var that=this; wx.chooseImage({ count: 1, // 默认9 sizeType: ['original', 'c ...

  4. React后台管理手动封装图片上传组件

    分为两个文件夹,index.js(逻辑文件) styled.js(样式文件) index.js文件,编写完成之后在对应的地方引入即可 import React from "react&quo ...

  5. UEditor之实现配置简单的图片上传示例

    UEditor之实现配置简单的图片上传示例 原创 2016年06月11日 18:27:31 开心一笑 下班后,阿华到楼下小超市买毛巾,刚买完出来,就遇到同一办公楼里另一家公司的阿菲,之前与她远远的有过 ...

  6. 微信小程序点击图片放大预览

    微信小程序点击图片放大预览使用到 wx.previewImage 接口,可以放大.上/下一张 上代码 wxml代码 <view class='content-img' wx:if="{ ...

  7. 微信小程序 在canvas画布上划动,页面禁止滑动

    要实现微信小程序 在canvas画布上划动,页面禁止滑动,不仅要设置disable-scroll="true",还要要给canvas绑定一个触摸事件才能生效. <canvas ...

  8. 微信小程序:封装全局的promise异步调用方法

    微信小程序:封装全局的promise异步调用方法 一:封装 function POST(url, params) { let promise = new Promise(function (resol ...

  9. 一、简单的图片上传并预览功能input[file]

    一.简单的图片上传并预览功能input[file] <!DOCTYPE html> <html lang="en"> <head> <me ...

随机推荐

  1. ActiveMQ详细入门教程系列(一)

    一.什么是消息中间件 两个系统或两个客户端之间进行消息传送,利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成.通过提供消息传递和消息排队模型,它可以在分布式环境下 ...

  2. 高性能HTTP加速器Varnish--基础知识

    一.Varnish 概述 Varnish 是一款高性能且开源的反向代理服务器和HTTP加速器,它的开发者 Poul-Henning Kamp 是 FreeBSD 核心的开发人员之一. 与传统的 Squ ...

  3. nginx完美支持thinkphp3.2.2(需配置URL_MODE=>3 rewrite兼容模式)

    来源:http://www.thinkphp.cn/topic/26637.html 环境:nginx 1.6,thinkphp3.2.2 第一步,修改server块 server { listen ...

  4. C# 主界面的扁平化

    如果需要查看更多文章,请微信搜索公众号 csharp编程大全,需要进C#交流群群请加微信z438679770,备注进群, 我邀请你进群! ! ! --------------------------- ...

  5. HTTPS证书知识扫盲

    1. 前言 现在搞网站域名不加个HTTPS就显得不专业,特别在使用JWT进行认证的接口一定要加HTTPS为你的接口增加一层安全屏障.今天就来聊聊配置HTTPS的关键SSL证书,也被称为CA证书. 2. ...

  6. 多测师讲解selenium _携程选票定位练习_高级讲师肖sir

    打开携程网 from selenium import webdriverfrom time import sleepfrom selenium.webdriver.common.keys import ...

  7. 数组的高级应用含ES6 for of 用法

    // 在ES5中常用的10种数组遍历方法: // 1. 原始的for循环语句 // 2. Array.prototype.forEach数组对象内置方法 // 3. Array.prototype.m ...

  8. 学不动了!微信官方推出 Web 前端和小程序统一框架 Kbone

    听说最近微信官方推出了一个统一 Web 前端和小程序的框架 -- Kbone ,特意去看了下... 为什么微信要搞Kbone? 微信小程序的底层模型和 Web 端不同,开发者无法直接把 Web 端的代 ...

  9. 【组合计数】visit

    题目大意 从 \((0,0)\) 开始,每次只可走上下左右一个单位长度,可走重复路,求第 \(T\) 步正好走到 \((n,m)\) 的方案数. 答案要求对 \(MOD\) 取模,\(MOD\) 保证 ...

  10. python保存图片

    #coding=utf-8 import requests url ="https://images.pexels.com/photos/1181767/pexels-photo-11817 ...