当前位置:首页 > 经验笔记 > VUE > 正文内容

基于Vue的移动端图片裁剪组件(Clipic)可自动压缩

han32685年前 (2021-04-15)VUE3504

安装:

Bash
npm install --save clipic

使用代码:

Markup
<template>
    <div>
        <div class="photo">
            <img  :src="base64" />
            <input type="file" name="file" ref="files" accept="image/*" @change="uploadImg" />
        </div>
    </div>
</template>


<script>
import Clipic from 'clipic'
const clipic = new Clipic()
export default {
    components: {},
    data() {
        return {
            base64: '',
        }
    },
    methods: {
        uploadImg() {
            let _this = this
            const files = this.$refs.files.files
            const reader = new FileReader()
            reader.readAsDataURL(files[0])
            reader.onload = (img) => {
                clipic.getImage({
                    width: 200,
                    height: 200,
                    src: img.target.result,
                    onDone: (base64) => {
                        //这里就是上传完成的回调函数,可以在这里请求接口上传至服务器
                        _this.base64 = base64
                        console.log(this.base64) //图片上传完成后生成的base64
                    },
                })
            }
            //执行完成之后把input的value值置空,否则无法选择相同的图片
            this.$refs.files.value = ''
        },
    },
}
</script>

<style scoped lang="less">
.photo{
    width: 100px;
    img{
        width: 100%;
        
    }
}
</style>
<style  >
</style>

使用展示:

image.png

扫描二维码推送至手机访问。

版权声明:本文由瀚文博客发布,如需转载请注明出处。

本文链接:http://hanwenblog.com/post/53.html

分享给朋友:

相关文章

vue强制更新$forceUpdate()

vue强制更新$forceUpdate()

vue强制更新$forceUpdate()添加this.$forceUpdate();进行强制渲染,效果实现。搜索资料得出结果:因为数据层次太多,render函数没有自动更新,需手动强制刷新。调用强制...

vue 项目运行node-sass报错

vue 项目运行node-sass报错

报错信息Browserslist: caniuse-lite is outdated. Please run:   npx&nb...

基于vue的移动端图片裁剪压缩处理

效果展示:原作者介绍:传送门原作者github:传送门基于原作者封装的组件:传送门基于原作者+vant UI封装的组件:传送门...

简单理解Vue中的nextTick

简单理解Vue中的nextTick

官方文档:Vue 在更新 DOM 时是异步执行的,为了在数据变化之后等待 Vue 完成更新 DOM,可以在数据变化之后立即使用 Vue.nextTick(callback)。这样回调函数将在 DOM...

ElementUI的el-cascader级联选择器组件获取选中的label | VUE

ElementUI的el-cascader级联选择器组件获取选中的label | VUE

例如上图,需要拿到全部/设备:设备123<el-cascader   ref="myCascader"   :options=&q...