欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue實現圖片上傳功能

 更新時間:2020年05月28日 10:20:01   作者:--風起云涌--  
這篇文章主要為大家詳細介紹了vue實現圖片上傳功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了vue實現圖片上傳功能的具體代碼,供大家參考,具體內容如下

先看效果

圖片上傳使用vant組件庫中的 van-uploader, 使用方法參考官網
vant組件庫

下面看代碼

UploadPicture.vue

<template>
 <div class="content">
 <!-- 底部模塊start -->
 <div class="bottom_bg">
 <p class="flexst pt8">上傳圖片</p>
 <div class="upload_bg">
 <div
 v-for="(item, index) in this.remUploadImgUrls">
 <img class="showimg" :src="item"/>
 <img
 class="delicon"
 src="@/assets/images/consult_close.png"
 @click="(e) => delImgClick(index, e)"
 />
 </div>
 <!--
 v-if="remUploadImgUrls.length < 6"
 限制最多6張
 -->
 <img
 class="addimg" src="@/assets/images/inq_addImg.png"
 v-if="remUploadImgUrls.length < 6"
 @click="openMenu"
 />
 </div>
 </div>
 <!-- 底部模塊end-->
 <van-actionsheet
 v-model="menuShow"
 :actions="actions"
 cancel-text="取消"
 @select="onSelect"
 />
 <van-uploader id="upload" :after-read="onRead"/>
 </div>
</template>

<script>
 import {mapState} from 'vuex'
 export default {
 name: "UploadPicture",
 data() {
 return {
 menuShow: false,
 actions: [
 {
 name: '歷史照片'
 },
 {
 name: '選擇相冊或拍照'
 }
 ],
 }
 },
 computed: {
 ...mapState({
 remUploadImgUrls() {
 return this.$store.state.uploadImgUrls;
 }
 })
 },
 methods: {
 openMenu() {
 this.menuShow = true
 },
 onSelect(item) {
 this.menuShow = false
 console.log(item);
 if (item.name === '選擇相冊或拍照') {
 return document.getElementById('upload').click();
 }
 },
 onRead(file) {
 this.$store
 .dispatch({
 type: 'uploadImg',
 payload: file.file
 })
 .then(() => {
 // Toast.clear;
 });
 },
 delImgClick(index, e) {
 let tmpList = [...this.remUploadImgUrls];
 tmpList.splice(index, 1);
 this.$store.commit('DEL_UPLOADIMG', tmpList);
 }
 },
 }

</script>

<style scoped lang="scss">
 .content {
 .bottom_bg {
 margin: 10px 8px 0;
 padding: 0 .1rem;
 background: #fff;
 .upload_bg {
 margin-top: 10px;
 display: flex;
 justify-content: space-between;
 flex-wrap: wrap;
 div {
 width: 31%;
 margin-bottom: 10px;
 position: relative;
 .showimg {
 width: 100%;
 height: 100%;
 }
 .delicon {
 position: absolute;
 right: -6px;
 top: -6px;
 width: 20px;
 height: 20px;
 }
 }
 .addimg {
 width: 31%;
 height: 31%;
 margin-bottom: 10px;
 }
 &:after {
 width: 30%;
 content: '';
 }
 }
 }
 }

</style>

src/store/index.js

import Vue from 'vue';
import vuex from 'vuex';
import { get, post} from '@/api';

Vue.use(vuex);
export default new vuex.Store({
 module: {
 },
 state: {
 uploadImgUrls: [],
 },
 mutations: { // 處理同步方法
 SET_UPLOADIMG(state, imgUrl) {
 const tmp = state.uploadImgUrls;
 tmp.push(imgUrl);
 state.uploadImgUrls = tmp;
 },
 DEL_UPLOADIMG(state, data) {
 state.uploadImgUrls = [...data];
 },
 },
 actions: { // 處理異步方法
 // 上傳圖片
 async uploadImg({ commit }, { payload }) {
 let f = new FormData();
 f.append('file', payload);
 const data = await post('/upload', f);
 commit('SET_UPLOADIMG', data);
 },
 },
});

更多文章可以點擊《Vue.js前端組件學習教程》學習閱讀。

關于vue.js組件的教程,請大家點擊專題vue.js組件學習教程進行學習。

更多vue學習教程請閱讀專題《vue實戰(zhàn)教程》

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Vue多環(huán)境代理配置方法思路詳解

    Vue多環(huán)境代理配置方法思路詳解

    多人協作模式下,修改代理比較麻煩,而且很容易某個開發(fā)人員會修改了vue.config.js文件后提交了。接下來通過本文給大家分享Vue多環(huán)境代理配置方法思路詳解,需要的朋友可以參考下
    2019-06-06
  • vue腳手架安裝以及安裝失敗問題解決辦法

    vue腳手架安裝以及安裝失敗問題解決辦法

    我們通常會用到腳手架vuecli創(chuàng)建項目,此時需要安裝腳手架,下面這篇文章主要給大家介紹了關于vue腳手架安裝以及安裝失敗問題的解決辦法,需要的朋友可以參考下
    2022-07-07
  • 詳談Object.defineProperty 及實現數據雙向綁定

    詳談Object.defineProperty 及實現數據雙向綁定

    這篇文章主要介紹了詳談Object.defineProperty 及實現數據雙向綁定,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • vue中異步函數async和await的用法說明

    vue中異步函數async和await的用法說明

    這篇文章主要介紹了vue中異步函數async和await的用法說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • Vue Echarts渲染數據導致殘留臟數據的問題處理

    Vue Echarts渲染數據導致殘留臟數據的問題處理

    這篇文章主要介紹了Vue Echarts渲染數據導致殘留臟數據的問題處理,文中通過代碼示例給大家講解的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下
    2024-08-08
  • vue雙向綁定及觀察者模式詳解

    vue雙向綁定及觀察者模式詳解

    這篇文章主要介紹了vue雙向綁定及觀察者模式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • Vue3 Pinia獲取全局狀態(tài)變量的實現方式

    Vue3 Pinia獲取全局狀態(tài)變量的實現方式

    這篇文章主要介紹了Vue3 Pinia獲取全局狀態(tài)變量的實現方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Vue 組件化基本使用詳情

    Vue 組件化基本使用詳情

    這篇文章主要給大家分享的是Vue 組件化基本使用,所謂組件化,就是把頁面拆分成多個組件,每個組件依賴的 CSS、JS、模板、圖片等資源放在一起開發(fā)和維護。 因為組件是資源獨立的,所以組件在系統(tǒng)內部可復用,組件和組件之間可以嵌套,下面來看文章學習內容吧
    2021-10-10
  • 基于Vite2.x的Vue 3.x項目的搭建實現

    基于Vite2.x的Vue 3.x項目的搭建實現

    這篇文章主要介紹了基于Vite2.x的Vue 3.x項目的搭建實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • Vue3的效率提升主要表現在哪些方面示例解析

    Vue3的效率提升主要表現在哪些方面示例解析

    Vue3帶來了許多性能優(yōu)化和效率提升的特性,本文將重點討論Vue3在靜態(tài)提升、預字符串化、緩存事件處理函數、Block?Tree和PatchFlag方面的改進,我們將通過對比Vue2和Vue3的編譯結果來說明這些方面的效率提升
    2023-12-12

最新評論