작가: Dubem Izuorah
귀하의 코딩 기술을 활용하는 축제 프로젝트를 찾고 있는 창의적인 개발자를 위해 맞춤 설정하고 사진을 추가하고 즉시 다운로드할 수 있는 디지털 명절 인사말 카드를 만들어 보세요. 우리는 이를 실현하기 위해 몇 가지 최첨단 웹 기술을 사용할 것이며, 그 과정에서 그래픽 생성, 여러 가지 멋진 패키지 및 몇 가지 깔끔한 Vue 3 요령에 대해 배우게 될 것입니다.
명절 연하장 작성기 인터페이스 스크린샷
이 튜토리얼이 끝나면 다음을 얻게 됩니다.
Vue 애플리케이션을 위한 강력한 배터리 포함 설정을 제공하는 Nuxt 3를 프레임워크로 사용하겠습니다. 터미널을 열고 아래 명령을 실행하여 프로젝트를 생성해 보겠습니다.
npx nuxi init christmas-card-maker cd christmas-card-maker yarn install
왜 Nuxt인가요? 내장된 라우팅, 쉬운 모듈 통합 및 전반적으로 쉬운 설정을 통해 견고한 기반을 제공합니다. 축하 카드 제작기에 딱 맞습니다!
이제 카드 생성 마법을 실현할 라이브러리를 추가하겠습니다. 터미널에서 다음 명령을 실행하세요:
yarn add @vue/server-renderer @vueuse/core nuxt satori satori-html yarn add -D @nuxtjs/tailwindcss
각 항목을 선택하는 이유를 자세히 설명하겠습니다.
개발 환경을 설정하기 위해 nuxt.config.ts를 업데이트해 보겠습니다.
? nuxt.config.ts
export default defineNuxtConfig({ ssr: false, devtools: { enabled: true }, modules: ["@nuxtjs/tailwindcss"], });
이 클라이언트측 앱에 대해 서버측 렌더링을 비활성화하고 Tailwind CSS 모듈을 활성화하고 있습니다. 이를 통해 인사말 카드 제조업체에 딱 맞는 가볍고 반응성이 뛰어난 설정을 제공합니다.
이제 모든 설정이 완료되었으므로 크리스마스 카드 제작 도구를 단계별로 만들어 보겠습니다.
먼저 카드 메이커를 위한 간단한 레이아웃을 만드는 데 집중하겠습니다. 사용자가 이름, 인사말, 이미지 업로드를 추가할 수 있는 필드가 있는 양식을 설정하겠습니다. 카드가 표시될 미리보기 영역도 추가할 예정입니다.
기본 레이아웃은 다음과 같습니다.
? app.vue
npx nuxi init christmas-card-maker cd christmas-card-maker yarn install
이 설정이 왜 필요한가요?
다음으로 앞서 가져온 카드 템플릿 구성 요소를 만들어 보겠습니다. 마법이 일어나는 곳입니다.
양식의 데이터를 사용하여 카드를 맞춤설정합니다. Components/ChristmasCard.vue에서 카드의 시각적 템플릿을 디자인하겠습니다. 사용자가 인사말을 개인화할 수 있는 캔버스를 디자인하는 것과 같다고 생각하세요.
? 구성 요소/ChristmasCard.vue
yarn add @vue/server-renderer @vueuse/core nuxt satori satori-html yarn add -D @nuxtjs/tailwindcss
분석:
여기서 모든 것을 하나로 묶습니다. ChristmasCard 구성 요소를 SVG로 변환하겠습니다.
? app.vue
npx nuxi init christmas-card-maker cd christmas-card-maker yarn install
설명하자면:
코드 및 템플릿 기능에 필수적인 유틸리티 기능을 추가하여 지금까지 작업한 모든 작업을 마무리하겠습니다.
이미지 업로드 지원 추가
이미지 업로드를 처리하는 기능을 추가하고 있습니다. 이를 통해 사용자는 이미지를 선택하고 크기 제한(100KB) 이내인지 확인하여 표시할 수 있습니다.
refreshGraphics 코드 아래에 다음을 붙여넣으세요.
? app.vue
yarn add @vue/server-renderer @vueuse/core nuxt satori satori-html yarn add -D @nuxtjs/tailwindcss
파일 크기를 확인하는 이유는 무엇인가요? 원활한 성능을 위해 파일 크기를 제한하고 있습니다. 더 크면 속도가 느려질 수 있으므로 100KB가 안전한 상한입니다.
다음으로 Vue 구성 요소를 HTML 문자열로 렌더링하겠습니다. 이를 통해 서버 측 렌더링, 이메일 템플릿 또는 정적 사이트 생성에 Vue를 사용할 수 있습니다. 이 경우 인사말 카드 템플릿을 생성하기 위한 것입니다. 이것도 코드에 추가해 보겠습니다.
npx nuxi init christmas-card-maker cd christmas-card-maker yarn install
마지막으로 카드를 JPEG로 다운로드할 수 있는 코드를 추가해 보겠습니다.
? app.vue
yarn add @vue/server-renderer @vueuse/core nuxt satori satori-html yarn add -D @nuxtjs/tailwindcss
이것이 작동하는 이유는 무엇입니까? HTML Canvas API를 사용하면 SVG를 캔버스에 그린 다음 쉽게 다운로드할 수 있도록 JPEG로 변환할 수 있습니다. 벡터 그래픽에서 이미지 파일을 생성하는 빠르고 효율적인 방법입니다.
SVG 요소가 컨테이너 내에서 올바르게 표시되도록 하려면 일부 CSS 스타일을 적용해야 합니다. 생성된 SVG의 크기는 1080px x 1080px로 고정되어 있지만 상위 컨테이너는 더 작으므로 왜곡 없이 컨테이너 내부에 맞도록 SVG의 크기를 조정해야 합니다.
? app.vue
export default defineNuxtConfig({ ssr: false, devtools: { enabled: true }, modules: ["@nuxtjs/tailwindcss"], });
이 CSS 규칙은 .banner-here div 내부의 SVG 요소 크기가 가로 세로 비율을 유지하면서 사용 가능한 공간을 채우도록 조정됩니다.
이제 프로젝트는 다음 스크린샷과 같아야 합니다. 실제 마법을 확인하기 위해 실행해 보세요!
저희 앱이 작동하는 모습을 보려면 아래 명령을 실행하고 브라우저에서 http://localhost:3000을 여세요.
참고로 이 튜토리얼의 Github 저장소는 다음과 같습니다.
<template> <div> <p><strong>So what’s happening here?</strong></p> <ol> <li> <strong>Card Preview:</strong> The with v-html="svg" is where our card will appear as an SVG once it’s generated. </li> <li><strong>Form Fields:</strong></li> <ul> <li>Two text fields: name and greeting. These will dynamically update the card when the user types.</li> <li>File input: Allows users to upload an image.</li> </ul> <ol> <li> <strong>File Restrictions:</strong> The small tag below the file input informs users about allowed file size and formats. Large images can slow down rendering, so we’re capping the size at 100KB.</li> <li> <strong>Download Button:</strong> This triggers the downloadSvgAsJpeg function, which saves the card as a JPEG image.</li> </ol> <h3> Step 2. Setting up Dependencies </h3> <p>Now let’s set up the logic and install the packages needed to power our Holiday Card Maker. Let’s import a few packages that will make things easier for us.</p> <p>? <strong>app.vue</strong><br> </p> <pre class="brush:php;toolbar:false">... </template> <script setup lang="ts"> import { createSSRApp } from "vue"; import { renderToString } from "@vue/server-renderer"; import { useLocalStorage, watchDebounced } from "@vueuse/core"; import satori from "satori"; import { html } from "satori-html"; import ChristmasCard from "./components/ChristmasCard.vue"; const form = useLocalStorage("app-form", { name: "", greeting: "Merry Christmas", photo: null, }); const svg = ref(""); const fonts = ref([]); ... </script>
위 GIF의 인터페이스와 비슷한 것이 보일 것입니다. 세부정보를 편집하고, 이미지를 추가하고, 이미지를 다운로드할 수 있습니다. 축하해요! 이제 나만의 크리스마스 카드 메이커가 생겼습니다.
맞춤형 축하 카드 제작 도구가 완성되었습니다! ? 하지만 여기서 멈추지 마세요. 다양한 디자인을 시험해보고, 더 많은 사용자 정의 옵션을 추가하거나, 다른 상황을 위한 카드를 만들어 보세요.
프로젝트 확장을 위한 몇 가지 아이디어:
클라이언트 측에서 더 많은 작업을 수행하고 싶으십니까? 이 기사를 읽고 브라우저에서 3D 개체를 렌더링하는 방법을 알아보세요.
2024년 12월 19일 https://www.vuemastery.com 에 원본 게시.
위 내용은 Vue Satori를 사용하여 인사말 카드 작성기 구축의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!