亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

uniapp+vue3實(shí)現(xiàn)上傳圖片組件封裝功能

 更新時(shí)間:2024年07月21日 11:25:39   作者:全棧^_^小菜鳥(niǎo)  
這篇文章主要介紹了uniapp+vue3實(shí)現(xiàn)上傳圖片組件封裝功能,首先創(chuàng)建一個(gè)?components 文件在里面進(jìn)行組件的創(chuàng)建,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下

首先創(chuàng)建一個(gè) components 文件在里面進(jìn)行組件的創(chuàng)建 

下面是 vip組件的封裝 也就是圖片上傳組件 只是我的命名是隨便起的

 
<template>
	<!--圖片 -->
	<view class="up-page">
		<!--圖片-->
		<view class="show-box" v-for="(item,index) in imageList" :key="index">
			<image class="full" :src="item" :data-src="image" @tap="previewImage(item)">
			</image>
			<view class="delect-icon" @tap="delect(index)">
				<image class="full" :src="clearIcon" mode=""></image>
			</view>
		</view>
		<view v-if="VideoOfImagesShow" @tap="chooseVideoImage" class="box-mode">
			<image class="full" :src="selectfile" mode=""></image>
		</view>
	</view>
</template>
<script setup>  
import { ref,onUnmounted } from 'vue';  
// 定義響應(yīng)式數(shù)據(jù)  
const clearIcon = ref('../../static/xxx.png');  
const selectfile = ref('../../static/jiahao.png');  
const VideoOfImagesShow = ref(true);  
const imageList = ref([]);  
const videoList = ref([]);  
const sourceType = ref(['拍攝', '相冊(cè)', '拍攝或相冊(cè)']);  
const sourceTypeIndex = ref(2);  
const cameraList = ref([  
  { value: 'back', name: '后置攝像頭', checked: 'true' },  
  { value: 'front', name: '前置攝像頭' }  
]);  
const cameraIndex = ref(0);  
const maxCount = ref(9);  
// 生命周期鉤子(onMounted, onUnmounted等)  
onUnmounted(() => {  
  imageList.value = [];  
  sourceTypeIndex.value = 2;  
  sourceType.value = ['拍攝', '相冊(cè)', '拍攝或相冊(cè)'];  
});  
// 方法  
function chooseVideoImage() {  
  uni.showActionSheet({  
    title: '選擇上傳類(lèi)型',  
    itemList: ['圖片'], // 注意:這里只有'圖片',如果需要視頻應(yīng)添加'視頻'  
    success: res => {  
      if (res.tapIndex === 0) {  
        chooseImages();  
      }  
      // 注意:原代碼中沒(méi)有實(shí)現(xiàn)chooseVideo,這里未添加  
    }  
  });  
}  
function chooseImages() {  
  uni.chooseImage({  
    count: maxCount.value,  
    sizeType: ['original', 'compressed'],  
    sourceType: ['album', 'camera'],  
    success: res => {  
      imageList.value = [...imageList.value, ...res.tempFilePaths];  
      if (imageList.value.length + videoList.value.length === maxCount.value) {  
        VideoOfImagesShow.value = false;  
      }  
    }  
  });  
}  
function previewImage(e) {  
  uni.previewImage({  
    // current: e.currentTarget.dataset.url || e, // 假設(shè)你通過(guò)某種方式傳遞了圖片的URL  
	current:  e, // 假設(shè)你通過(guò)某種方式傳遞了圖片的URL
    urls: imageList.value  
  });  
}  
// 刪除圖片的函數(shù)  
function delect(index) {  
  uni.showModal({  
    title: '提示',  
    content: '是否要?jiǎng)h除該圖片',  
    success: res => {  
      if (res.confirm) {  
        // 使用splice方法刪除圖片,注意需要訪(fǎng)問(wèn).value  
        imageList.value.splice(index, 1);  
        if (imageList.value.length+videoList.value.length  == maxCount.value) {
        VideoOfImagesShow.value = false;
        } else {
        	VideoOfImagesShow.value = true;
        }
      }  
    }  
  });  
} 
</script> 
<style lang="scss">
	/* 統(tǒng)一上傳后顯示的盒子寬高比 */
	.box-mode {
		width: 27vw;
		height: 27vw;
		border-radius: 8rpx;
		overflow: hidden;
	}
	.full {
		width: 100%;
		height: 100%;
	}
	.up-page {
		display: flex;
		flex-wrap: wrap;
		display: flex;
		width: 100%;
		.show-box:nth-child(3n){
			margin-right: 0;
		}
		.show-box {
			position: relative;
			margin-bottom:4vw;
			margin-right: 4vw;
			@extend .box-mode;
			.delect-icon {
				height: 40rpx;
				width: 40rpx;
				position: absolute;
				right: 0rpx;
				top: 0rpx;
				z-index: 1000;
			}
		}
	}
</style>

直接在頁(yè)面引用

<view class="imgbox">
			<view class="example-body">
				<!-- <uni-file-picker limit="9" title="最多選擇9張圖片"></uni-file-picker> -->
				<div>選擇照片-最多只能選擇九張</div>
				<vip></vip>  //上傳圖片的組件
			</view>
		</view>

最終樣子

到此這篇關(guān)于uniapp,vue3上傳圖片組件封裝的文章就介紹到這了,更多相關(guān)vue3上傳圖片組件封裝內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue2(三)實(shí)現(xiàn)子菜單展開(kāi)收縮,帶動(dòng)畫(huà)效果實(shí)現(xiàn)方法

    Vue2(三)實(shí)現(xiàn)子菜單展開(kāi)收縮,帶動(dòng)畫(huà)效果實(shí)現(xiàn)方法

    這篇文章主要介紹了vue實(shí)現(xiàn)收縮展開(kāi)效果的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Vue數(shù)據(jù)更新視圖未更新的幾種解決方案

    Vue數(shù)據(jù)更新視圖未更新的幾種解決方案

    本文主要介紹在vue項(xiàng)目中,遇到數(shù)據(jù)更新但視圖不更新的情況時(shí),無(wú)法使用watch監(jiān)聽(tīng)、無(wú)法使用this.$set方法,同時(shí)使用this.$forceUpdate()無(wú)效時(shí),所使用的解決方案,需要的朋友可以參考下
    2024-02-02
  • 詳解Vue3常用的6種組件通信方式

    詳解Vue3常用的6種組件通信方式

    我們用Vue3開(kāi)發(fā)項(xiàng)目時(shí),常常需要面對(duì)的一個(gè)問(wèn)題就是組件之間的通信,如何將數(shù)據(jù)發(fā)給對(duì)應(yīng)的組件,這是不可避免的一個(gè)問(wèn)題,該篇講述了Vue3常用的6種組件通信方式,需要的朋友可以參考下
    2024-09-09
  • 使用Vue.js報(bào)錯(cuò):ReferenceError: “Vue is not defined“ 的原因與解決方案

    使用Vue.js報(bào)錯(cuò):ReferenceError: “Vue is not d

    在前端開(kāi)發(fā)中,ReferenceError: "Vue is not defined" 是一個(gè)常見(jiàn)的錯(cuò)誤,該錯(cuò)誤通常發(fā)生在項(xiàng)目中未正確引入 Vue.js 框架或代碼配置存在問(wèn)題時(shí),本篇文章將詳細(xì)分析該錯(cuò)誤的成因,并提供多種解決方案,幫助開(kāi)發(fā)者快速排查問(wèn)題,需要的朋友可以參考下
    2024-12-12
  • VUE中如何優(yōu)雅實(shí)現(xiàn)爺孫組件的數(shù)據(jù)通信

    VUE中如何優(yōu)雅實(shí)現(xiàn)爺孫組件的數(shù)據(jù)通信

    所謂祖孫組件,也就是3層嵌套的組件,下面這篇文章主要給大家介紹了關(guān)于VUE中如何優(yōu)雅實(shí)現(xiàn)爺孫組件的數(shù)據(jù)通信的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • vue.js綁定class和style樣式(6)

    vue.js綁定class和style樣式(6)

    這篇文章我們將一起學(xué)習(xí)vue.js實(shí)現(xiàn)綁定class和style樣式,感興趣的小伙伴們可以參考一下
    2016-12-12
  • 安裝@vue/cli報(bào)錯(cuò)npmERR gyp ERR問(wèn)題及解決

    安裝@vue/cli報(bào)錯(cuò)npmERR gyp ERR問(wèn)題及解決

    這篇文章主要介紹了安裝@vue/cli報(bào)錯(cuò)npmERR gyp ERR問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 使用Vue編寫(xiě)一個(gè)日期選擇器

    使用Vue編寫(xiě)一個(gè)日期選擇器

    這篇文章主要為大家詳細(xì)介紹了如何使用Vue編寫(xiě)一個(gè)簡(jiǎn)單的日期選擇器,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-12-12
  • Vue組件傳參11種方式舉例介紹

    Vue組件傳參11種方式舉例介紹

    這篇文章主要給大家介紹了關(guān)于Vue組件傳參11種方式的相關(guān)資料,文中通過(guò)代碼示例介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用vue具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09
  • 解決Vue項(xiàng)目Network:?unavailable的問(wèn)題

    解決Vue項(xiàng)目Network:?unavailable的問(wèn)題

    項(xiàng)目只能通過(guò)Local訪(fǎng)問(wèn)而不能通過(guò)Network訪(fǎng)問(wèn),本文主要介紹了解決Vue項(xiàng)目Network:?unavailable的問(wèn)題,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-06-06

最新評(píng)論