Vue는 데이터 바인딩 및 구성 요소화를 통해 웹 개발을 단순화하는 MVVM 패턴을 기반으로 하는 프런트 엔드 프레임워크입니다. Vue 개발 과정에서 이미지 업로드 및 미리보기와 관련된 요구사항은 비교적 일반적입니다. 이 글에서는 이미지 업로드 및 미리보기에 대한 Vue 문서의 관련 기능 구현 방법을 소개합니다.
먼저 Vue 컴포넌트에 axios 및 element-ui 라이브러리를 도입해야 합니다. 이 두 라이브러리는 이미지를 업로드할 때 필요하기 때문입니다.
import axios from 'axios' import { Message } from 'element-ui'
다음으로 이미지를 업로드하는 함수를 정의합니다.
uploadImage(file) { let formData = new FormData() formData.append('file', file) return axios.post('/upload', formData) .then(res => { if (res.data.code === 0) { return Promise.resolve(res.data.data) } else { return Promise.reject(res.data.msg) } }).catch(err => { Message.error('图片上传失败!') return Promise.reject(err) }) }
이 함수에서는 axios의 post 메소드를 통해 서버에 파일을 업로드하고, 업로드가 성공한 후 데이터를 Promise로 반환합니다. 업로드가 실패하면 오류 메시지가 표시됩니다.
다음은 이미지 미리보기 기능 코드입니다.
previewImage(file, cb) { if (!file) { return } if (typeof FileReader === 'undefined') { Message.warning('您的浏览器不支持图片预览') return } let reader = new FileReader() reader.onload = function(e) { cb(e.target.result) } reader.readAsDataURL(file) }
이 함수에서는 FileReader 객체를 통해 이미지 미리보기 기능을 구현합니다. 파일을 읽을 때 콜백 함수 cb를 통해 미리보기 이미지의 URL이 매개변수로 반환됩니다.
마지막으로 Vue 구성 요소에서 다음 두 가지 기능을 사용하여 이미지 업로드 및 미리 보기 기능을 구현합니다.
<template> <div class="upload"> <el-upload class="avatar-uploader" :action="serverUrl" :show-file-list="false" :on-success="handleSuccess" :before-upload="beforeUpload"> <img class="avatar lazy" src="/static/imghwm/default1.png" data-src="imageUrl" v-if="imageUrl" : alt="Vue 문서에서 이미지 업로드 및 미리보기 기능을 구현하는 방법" > <i v-else class="el-icon-plus avatar-uploader-icon"></i> </el-upload> </div> </template> <script> export default { data() { return { imageUrl: '' } }, methods: { beforeUpload(file) { const isJPG = file.type === 'image/jpeg' const isPNG = file.type === 'image/png' const isLt2M = file.size / 1024 / 1024 < 2 if (!isJPG && !isPNG) { this.$message.error('上传头像图片只能是 JPG/PNG 格式!') return false } if (!isLt2M) { this.$message.error('上传头像图片大小不能超过 2MB!') return false } this.previewImage(file, (url) => { this.imageUrl = url }) }, handleSuccess(response) { this.$emit('update:avatar_url', response.fileUrl) } } } </script>
이 예에서는 element-ui의 Upload 구성 요소를 사용하여 이미지 업로드 기능을 구현하고 beforeUpload 기능을 사용하여 업로드된 파일이 요구 사항을 충족하는지 확인합니다(JPG/PNG 형식이어야 하며 크기가 2MB를 초과할 수 없음). 확인에 통과하면 이미지 미리보기 기능이 호출되어 파일을 미리 볼 수 있습니다. 업로드가 성공한 후 반환된 URL 주소는 다른 구성 요소에서 사용할 수 있도록 이벤트를 통해 전달됩니다.
요약하자면, 위의 기능과 컴포넌트를 사용하면 Vue 문서 내 이미지 업로드 및 미리보기 기능을 보다 쉽게 구현할 수 있습니다. 물론 실제 애플리케이션에서는 특정 비즈니스 요구에 따라 해당 조정 및 최적화가 이루어져야 합니다.
위 내용은 Vue 문서에서 이미지 업로드 및 미리보기 기능을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

vue.js는 복잡한 사용자 인터페이스를 구축하는 데 적합한 점진적인 JavaScript 프레임 워크입니다. 1) 핵심 개념에는 반응 형 데이터, 구성 요소화 및 가상 DOM이 포함됩니다. 2) 실제 응용 분야에서는 TODO 응용 프로그램을 구축하고 Vuerouter를 통합하여 시연 할 수 있습니다. 3) 디버깅 할 때 VuedeVtools 및 Console.log를 사용하는 것이 좋습니다. 4) 성능 최적화는 V-IF/V- 쇼, 목록 렌더링 최적화, 구성 요소의 비동기로드 등을 통해 달성 할 수 있습니다.

vue.js는 중소형 프로젝트에 적합하지만 REACT는 크고 복잡한 응용 프로그램에 더 적합합니다. 1. Vue.js의 응답 형 시스템은 종속성 추적을 통해 DOM을 자동으로 업데이트하여 데이터 변경을 쉽게 관리 할 수 있습니다. 2. 반응은 단방향 데이터 흐름을 채택하고 데이터 흐름에서 하위 구성 요소로 데이터가 흐르고 명확한 데이터 흐름과 곤란하기 쉬운 구조를 제공합니다.

vue.js는 중소형 프로젝트 및 빠른 반복에 적합한 반면 React는 크고 복잡한 응용 프로그램에 적합합니다. 1) vue.js는 사용하기 쉽고 팀이 불충분하거나 프로젝트 규모가 작는 상황에 적합합니다. 2) React는 더 풍부한 생태계를 가지고 있으며 고성능 및 복잡한 기능적 요구가있는 프로젝트에 적합합니다.

VUE에서 태그의 점프를 구현하는 방법에는 다음이 포함됩니다. HTML 템플릿의 A 태그를 사용하여 HREF 속성을 지정합니다. VUE 라우팅의 라우터 링크 구성 요소를 사용하십시오. javaScript 에서이. $ router.push () 메소드를 사용하십시오. 매개 변수는 쿼리 매개 변수를 통해 전달 될 수 있으며 동적 점프를 위해 라우터 옵션에서 경로가 구성됩니다.

VUE에서 구성 요소 점프를 구현하는 방법은 다음과 같습니다. 라우터 링크 및 & lt; router-view & gt; 하이퍼 링크 점프를 수행하고 대상 경로로 속성을 지정합니다. & lt; router-view & gt; 현재 라우팅 된 렌더링 된 구성 요소를 표시하는 구성 요소. 프로그래밍 방식 탐색을 위해 router.push () 및 router.replace () 메소드를 사용하십시오. 전자는 역사를 구하고 후자는 기록을 떠나지 않고 현재 경로를 대체합니다.

VUE에서 DIV 요소를 점프하는 두 가지 방법이 있습니다. VUE 라우터를 사용하고 라우터 링크 구성 요소를 추가하십시오. @Click 이벤트 리스너를 추가하고 이것을 호출하십시오. $ router.push () 메소드를 점프하십시오.

VUE에서 데이터를 전달하는 두 가지 주요 방법이 있습니다 : Props : 일원 데이터 바인딩, 부모 구성 요소에서 자식 구성 요소로 데이터를 전달합니다. 이벤트 : 이벤트와 사용자 정의 이벤트를 사용하여 구성 요소간에 데이터를 전달합니다.

vue.js는 점프하는 세 가지 방법을 제공합니다. 기본 JavaScript API : Window.location.href를 사용하여 점프하십시오. Vue 라우터 : & lt; router-link & gt를 사용하십시오. 태그 또는이. $ router.push () 메소드 점프. Vuex : 파견 경로 점프는 파견 동작을 통과하거나 돌연변이를 커밋합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경
