Maison interface Web Voir.js Comment implémenter la fonction de dessin en ligne dans Vue ?

Comment implémenter la fonction de dessin en ligne dans Vue ?

Jun 25, 2023 pm 01:09 PM
vue 在线 绘图

Vue est un framework JavaScript moderne et l'un des frameworks front-end les plus populaires aujourd'hui. Il est largement utilisé pour créer des applications à page unique (SPA) et des pages Web dynamiques. Vue fournit un riche ensemble d'outils et de composants pour fournir aux développeurs des solutions rapides et fiables, permettant aux développeurs de développer facilement diverses applications de sites Web et applications interactives. Dans cet article, nous explorerons comment développer une fonctionnalité de dessin en ligne à l'aide de Vue. Il s'agit d'une fonctionnalité très intéressante et utile pour implémenter la fonctionnalité de dessin sur une page Web, et constitue également un bon exemple pour apprendre Vue.

1. Préparation de l'environnement de développement Vue

Avant de commencer, nous devons installer Node.js et Vue CLI, car c'est la base d'un environnement de développement Vue.js . Vue CLI fournit un moyen pratique de créer des projets, de mettre en file d'attente et d'installer les outils de plug-in liés à Vue.js. Après avoir installé Vue CLI, nous pouvons utiliser la commande suivante pour créer un nouveau projet Vue.js.

vue create myappvue create myapp

安装完毕后,我们就可以开始开发。

2、使用 Vue 开发在线绘图功能

在开始开发在线绘图功能之前,我们先需要了解 Vue 的一些基础知识。Vue.js 是一个基于组件的框架,我们需要使用组件来定义我们的绘图功能。具体来说,我们将创建两个组件,分别是 Canvas 和 Tool。

Canvas 组件将负责创建画布、实现绘图并显示绘图结果;Tool 组件负责创建绘图工具栏,包括颜色、大小等等。这些功能嵌入到一个共同的父组件(App.vue)中。下面是我们的代码:

<template>
  <div class="app">
    <Tool @change-color="changeColor" @change-size="changeSize"/>
    <Canvas :color="color" :size="size"/>
  </div>
</template>
Copier après la connexion

我们可以看到,代码中有两个子组件 Canvas 和 Tool。App.vue 是父组件。

Tool 组件代码:

<template>
  <div class="tool">
    <select v-model="selectedColor" @change="setColor">
      <option value="black">黑色</option>
      <option value="blue">蓝色</option>
      <option value="red">红色</option>
    </select>
    <select v-model="selectedSize" @change="setSize">
      <option value="1">细线</option>
      <option value="5">中等线</option>
      <option value="10">粗线</option>
    </select>
  </div>
</template>

<script>
export default {
  data() {
    return {
      selectedColor: "black",
      selectedSize: "1",
    };
  },
  methods: {
    setColor() {
      this.$emit("change-color", this.selectedColor);
    },
    setSize() {
      this.$emit("change-size", this.selectedSize);
    },
  },
};
</script>
Copier après la connexion

我们可以发现 Tool 组件有两个下拉框,用于选择颜色和线条大小。 通过 setColor 和 setSize 方法,我们将选择的颜色和大小作为事件传递给父组件。

Canvas 组件代码:

<template>
  <canvas :class="{ active: painting }" ref="canvas" @mousedown="startPainting" @mouseup="finishPainting" @mousemove="draw">
  </canvas>
</template>

<script>
export default {
  props: ["color", "size"],
  data() {
    return {
      painting: false,
      context: null,
      mouseX: null,
      mouseY: null,
    };
  },
  mounted() {
    this.context = this.$refs.canvas.getContext("2d");
    this.context.lineWidth = this.size;
    this.context.strokeStyle = this.color;
    this.context.lineCap = "round";
  },
  methods: {
    draw(e) {
      if (!this.painting) {
        return;
      }
      this.context.beginPath();
      this.context.moveTo(this.mouseX, this.mouseY);
      this.mouseX = e.pageX - this.$refs.canvas.offsetLeft;
      this.mouseY = e.pageY - this.$refs.canvas.offsetTop;
      this.context.lineTo(this.mouseX, this.mouseY);
      this.context.stroke();
    },
    startPainting(e) {
      this.painting = true;
      this.mouseX = e.pageX - this.$refs.canvas.offsetLeft;
      this.mouseY = e.pageY - this.$refs.canvas.offsetTop;
    },
    finishPainting() {
      this.painting = false;
    },
  },
};
</script>
Copier après la connexion

Canvas 组件创建了一个画布,并在 mounted 钩子函数中设置了绘图参数。绘图开始和结束事件将分别由 startPainting 和 finishPainting 处理,draw 方法用于绘图。

3、使用 Vue 运行在线绘图功能

最后我们把代码整合在一起,我们就可以运行我们的 Vue.js 在线绘图程序了。运行以下命令:

npm start

Une fois l'installation terminée, nous pouvons commencer le développement.

2. Utilisez Vue pour développer des fonctions de dessin en ligne

Avant de commencer à développer des fonctions de dessin en ligne, nous devons d'abord comprendre quelques connaissances de base de Vue. Vue.js est un framework basé sur des composants et nous devons utiliser des composants pour définir nos fonctions de dessin. Plus précisément, nous allons créer deux composants, Canvas et Tool.

Le composant Canvas sera responsable de la création du canevas, de la mise en œuvre du dessin et de l'affichage des résultats du dessin ; le composant Tool est responsable de la création de la barre d'outils de dessin, y compris la couleur, la taille, etc. Ces fonctions sont intégrées dans un composant parent commun (App.vue). Ci-dessous notre code : #🎜🎜#rrreee#🎜🎜#Nous pouvons voir qu'il y a deux sous-composants Canvas et Tool dans le code. App.vue est le composant parent. #🎜🎜##🎜🎜#Code du composant Tool : #🎜🎜#rrreee#🎜🎜#Nous pouvons constater que le composant Tool comporte deux listes déroulantes pour sélectionner la couleur et la taille de la ligne. Grâce aux méthodes setColor et setSize, nous transmettons la couleur et la taille sélectionnées en tant qu'événements au composant parent. #🎜🎜##🎜🎜#Code du composant Canvas : #🎜🎜#rrreee#🎜🎜#Le composant Canvas crée un canevas et définit les paramètres de dessin dans la fonction de crochet monté. Les événements de début et de fin du dessin seront gérés respectivement par startPainting et finishPainting, et la méthode draw est utilisée pour le dessin. #🎜🎜##🎜🎜#3. Utilisez Vue pour exécuter la fonction de dessin en ligne #🎜🎜##🎜🎜#Enfin, nous intégrons le code ensemble et nous pouvons exécuter notre programme de dessin en ligne Vue.js. Exécutez la commande suivante : #🎜🎜##🎜🎜#npm start#🎜🎜##🎜🎜# pour commencer à dessiner. Dessinez le motif sur la zone de toile pendant que nous ajustons la couleur et la taille en ligne. Cette application fournit des fonctionnalités supplémentaires comme effacer le canevas, etc. #🎜🎜##🎜🎜#4. Résumé#🎜🎜##🎜🎜#Ce qui précède est le processus d'utilisation de Vue.js pour implémenter les fonctions de dessin en ligne de base. Vous pouvez ensuite personnaliser les fonctionnalités et les interactions du programme en fonction de vos besoins. Vue.js nous permet de développer et de maintenir nos applications en ligne plus facilement et plus rapidement grâce à ses riches fonctions de composants et ses crochets de cycle de vie. J'espère que cet article pourra aider les lecteurs intéressés par le développement de Vue.js, et j'espère que vous apprécierez cette conception Vue.js. #🎜🎜#

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser Bootstrap en Vue Comment utiliser Bootstrap en Vue Apr 07, 2025 pm 11:33 PM

L'utilisation de bootstrap dans vue.js est divisée en cinq étapes: installer bootstrap. Importer un bootstrap dans main.js. Utilisez le composant bootstrap directement dans le modèle. Facultatif: style personnalisé. Facultatif: utilisez des plug-ins.

Comment ajouter des fonctions aux boutons pour Vue Comment ajouter des fonctions aux boutons pour Vue Apr 08, 2025 am 08:51 AM

Vous pouvez ajouter une fonction au bouton VUE en liant le bouton dans le modèle HTML à une méthode. Définissez la logique de la fonction de méthode et d'écriture dans l'instance Vue.

Comment utiliser Watch in Vue Comment utiliser Watch in Vue Apr 07, 2025 pm 11:36 PM

L'option Watch dans Vue.js permet aux développeurs d'écouter des modifications de données spécifiques. Lorsque les données changent, regardez déclenche une fonction de rappel pour effectuer des vues de mise à jour ou d'autres tâches. Ses options de configuration incluent immédiatement, qui spécifie s'il faut exécuter un rappel immédiatement, et profond, ce qui spécifie s'il faut écouter récursivement les modifications des objets ou des tableaux.

Que signifie le développement de plusieurs pages Vue? Que signifie le développement de plusieurs pages Vue? Apr 07, 2025 pm 11:57 PM

Le développement multi-pages VUE est un moyen de créer des applications à l'aide du cadre Vue.js, où l'application est divisée en pages distinctes: Maintenance du code: La division de l'application en plusieurs pages peut rendre le code plus facile à gérer et à maintenir. Modularité: chaque page peut être utilisée comme module séparé pour une réutilisation et un remplacement faciles. Routage simple: la navigation entre les pages peut être gérée par une configuration de routage simple. Optimisation du référencement: chaque page a sa propre URL, ce qui aide le référencement.

Comment référencer le fichier JS avec Vue.js Comment référencer le fichier JS avec Vue.js Apr 07, 2025 pm 11:27 PM

Il existe trois façons de se référer aux fichiers JS dans Vue.js: spécifiez directement le chemin à l'aide du & lt; script & gt; étiqueter;; importation dynamique à l'aide du crochet de cycle de vie monté (); et l'importation via la bibliothèque de gestion de l'État Vuex.

Comment revenir à la page précédente par Vue Comment revenir à la page précédente par Vue Apr 07, 2025 pm 11:30 PM

Vue.js dispose de quatre méthodes pour revenir à la page précédente: $ router.go (-1) $ router.back () utilise & lt; router-link to = & quot; / & quot; Composant Window.History.back (), et la sélection de la méthode dépend de la scène.

Comment sauter à la div de Vue Comment sauter à la div de Vue Apr 08, 2025 am 09:18 AM

Il existe deux façons de sauter des éléments div dans Vue: Utilisez le routeur Vue et ajoutez le composant routeur-link. Ajoutez l'écouteur de l'événement @Click et appelez ceci. $ Router.push () pour sauter.

Comment utiliser Vue Traversal Comment utiliser Vue Traversal Apr 07, 2025 pm 11:48 PM

Il existe trois méthodes courantes pour que Vue.js traverse les tableaux et les objets: la directive V-FOR est utilisée pour traverser chaque élément et les modèles de rendu; La directive V-Bind peut être utilisée avec V-FOR pour définir dynamiquement les valeurs d'attribut pour chaque élément; et la méthode .map peut convertir les éléments du tableau en nouveaux tableaux.

See all articles