Maison > interface Web > Voir.js > le corps du texte

Apprenez-vous 5 points de connaissances pour rendre le développement de Vue3 plus fluide

WBOY
Libérer: 2022-02-18 17:12:35
avant
2277 Les gens l'ont consulté

Cet article vous apporte des connaissances sur le développement dans Vue et compile 5 conseils qui peuvent améliorer l'efficacité du développement, rendant le développement de votre projet Vue3 de plus en plus fluide. J'espère qu'il sera utile à tout le monde.

Apprenez-vous 5 points de connaissances pour rendre le développement de Vue3 plus fluide

1. Amélioration du nom de configuration

Le sucre de la syntaxe de configuration de Vue3 est une bonne chose, mais le premier problème causé par l'utilisation de la syntaxe de configuration est que le nom ne peut pas être personnalisé, et lorsque nous utilisons keep-alive, nous avons souvent besoin d'un name. Ce problème est généralement résolu en écrivant deux balises de script, une utilisant setup et une non, mais ce n'est certainement pas assez élégant.

<script>
import { defineComponent, onMounted } from &#39;vue&#39;
export default defineComponent({
  name: &#39;OrderList&#39;
})
</script>
<script setup>
onMounted(() => {
  console.log(&#39;mounted===&#39;)
})
</script>
Copier après la connexion

À ce stade, avec l'aide du plug-in vite-plugin-vue-setup-extend, nous pouvons résoudre ce problème de manière plus élégante. Au lieu d'écrire deux balises de script, nous pouvons définir directement le nom sur la balise de script. .

Installation

npm i vite-plugin-vue-setup-extend -D
Copier après la connexion

Configuration

// vite.config.ts
import { defineConfig } from &#39;vite&#39;
import VueSetupExtend from &#39;vite-plugin-vue-setup-extend&#39;
export default defineConfig({
  plugins: [
    VueSetupExtend()
  ]
})
Copier après la connexion

Utilisation

<script setup name="OrderList">
import { onMounted } from &#39;vue&#39;
onMounted(() => {
  console.log(&#39;mounted===&#39;)
})
</script>
Copier après la connexion

2. La syntaxe d'importation automatique de l'API

setup nous permet de l'utiliser sur le modèle sans renvoyer les variables et les méthodes une par une. Cela libère considérablement. nos mains. Cependant, pour certaines VueAPI couramment utilisées, telles que ref, calculée, watch, etc., nous devons toujours les importer manuellement sur la page à chaque fois.

Nous pouvons réaliser une importation automatique via unplugin-auto-import, et vous pouvez utiliser l'API de Vue dans le fichier sans importer.

Installation

npm i unplugin-auto-import -D
Copier après la connexion

Configuration

// vite.config.ts
import { defineConfig } from &#39;vite&#39;
import AutoImport from &#39;unplugin-auto-import/vite&#39;
export default defineConfig({
  plugins: [
    AutoImport({
       // 可以自定义文件生成的位置,默认是根目录下,使用ts的建议放src目录下
      dts: &#39;src/auto-imports.d.ts&#39;,
      imports: [&#39;vue&#39;]
    })
  ]
})
Copier après la connexion

Le fichier auto-imports.d.ts sera automatiquement généré après l'installation et la configuration.

// auto-imports.d.ts
// Generated by &#39;unplugin-auto-import&#39;
// We suggest you to commit this file into source control
declare global {
  const computed: typeof import(&#39;vue&#39;)[&#39;computed&#39;]
  const createApp: typeof import(&#39;vue&#39;)[&#39;createApp&#39;]
  const customRef: typeof import(&#39;vue&#39;)[&#39;customRef&#39;]
  const defineAsyncComponent: typeof import(&#39;vue&#39;)[&#39;defineAsyncComponent&#39;]
  const defineComponent: typeof import(&#39;vue&#39;)[&#39;defineComponent&#39;]
  const effectScope: typeof import(&#39;vue&#39;)[&#39;effectScope&#39;]
  const EffectScope: typeof import(&#39;vue&#39;)[&#39;EffectScope&#39;]
  const getCurrentInstance: typeof import(&#39;vue&#39;)[&#39;getCurrentInstance&#39;]
  const getCurrentScope: typeof import(&#39;vue&#39;)[&#39;getCurrentScope&#39;]
  const h: typeof import(&#39;vue&#39;)[&#39;h&#39;]
  const inject: typeof import(&#39;vue&#39;)[&#39;inject&#39;]
  const isReadonly: typeof import(&#39;vue&#39;)[&#39;isReadonly&#39;]
  const isRef: typeof import(&#39;vue&#39;)[&#39;isRef&#39;]
  // ...
}
export {}
Copier après la connexion

Utilisez

<script setup name="OrderList">
// 不用import,直接使用ref
const count = ref(0)
onMounted(() => {
  console.log(&#39;mounted===&#39;)
})
</script>
Copier après la connexion

Ci-dessus nous avons importé uniquement vue dans la configuration de vite.config.ts, importers : ['vue'] ​​​​En plus de vue, vous pouvez également en importer d'autres comme vue-router. et vue selon la documentation -use etc.

Personnellement, il est recommandé de n'importer automatiquement que certaines API familières. Par exemple, nous connaissons l'API Vue lors du développement et pouvons l'écrire les yeux fermés. Pour certaines bibliothèques inconnues comme VueUse, il est préférable d'utiliser l'importation. C'est mieux, après tout, l'éditeur a des invites, donc ce n'est pas facile de faire des erreurs.

Résoudre le problème de rapport d'erreurs d'eslint

L'utiliser sans importation entraînera l'affichage d'un rapport d'erreur par eslint. Cela peut être résolu en installant le plug-in **vue-global-api** dans eslintrc.js.

// 安装依赖
npm i vue-global-api -D
// eslintrc.js
module.exports = {
  extends: [
    &#39;vue-global-api&#39;
  ]
}
Copier après la connexion

3. Adieu à .value

Comme nous le savons tous, ref nous oblige à ajouter .value lors de l'accès aux variables, ce qui met de nombreux développeurs mal à l'aise.

let count = ref(1)
const addCount = () => {
  count.value += 1
}
Copier après la connexion

Plus tard, You Dada a également soumis une nouvelle proposition de sucre de syntaxe de référence.

ref: count = 1
const addCount = () => {
  count += 1
}
Copier après la connexion

Cette proposition a suscité beaucoup de discussions dans la communauté dès sa sortie Cela fait longtemps, je ne dirai donc plus de bêtises sur ce sujet ici.

Ce que je présente ici est une autre façon d'écrire, qui est également une solution officielle plus tard. Ajoutez $ avant la réf. Cette fonction est désactivée par défaut et doit être activée manuellement.

// vite.config.ts
import { defineConfig } from &#39;vite&#39;
import vue from &#39;@vitejs/plugin-vue&#39;
export default defineConfig({
  plugins: [
    vue({
      refTransform: true // 开启ref转换
    })
  ]
})
Copier après la connexion

Après l'avoir allumé, vous pouvez écrire comme ceci :

let count = $ref(1)
const addCount = () => {
  count++
}
Copier après la connexion

La configuration de ce sucre de syntaxe est légèrement différente selon les différentes versions Voici la version du plug-in concerné que j'utilise :

"vue": "^3.2.2",
"@vitejs/plugin-vue": "^1.9.0",
"@vue/compiler-sfc": "^3.2.5",
"vite": "^2.6.13"
Copier après la connexion

4. importer des images

Quand nous sommes dans Vue2 Les images sont souvent citées comme ceci :

<img :src="require(&#39;@/assets/image/logo.png&#39;)" />
Copier après la connexion

Mais require n'est pas pris en charge dans Vite La référence de l'image devient la suivante :

<template>
  <img :src="Logo" />
</template>
<script setup>
import Logo from &#39;@/assets/image/logo.png&#39;
</script>
Copier après la connexion

Chaque fois que vous utilisez l'image, vous devez l'importer, ce qui retarde évidemment le temps de pêche de tout le monde. À ce stade, nous pouvons utiliser vite-plugin-vue-images pour importer automatiquement des images.

Rafraîchissant, mais des conflits variables sont susceptibles de se produire, alors utilisez-le avec prudence !

Installation

npm i vite-plugin-vue-images -D
Copier après la connexion

Configuration

// vite.config.ts
import { defineConfig } from &#39;vite&#39;
import ViteImages from &#39;vite-plugin-vue-images&#39;
export default defineConfig({
  plugins: [
    ViteImages({
      dirs: [&#39;src/assets/image&#39;] // 指明图片存放目录
    })
  ]
})
Copier après la connexion

Utilisation

<template>
  <!-- 直接使用 -->
  <img :src="Logo" />
</template>
<script setup>
// import Logo from &#39;@/assets/image/logo.png&#39;
</script>
Copier après la connexion

5. Ignorez le suffixe .vue

Je crois que beaucoup de gens ignorent le suffixe .vue lors de l'importation de fichiers lors du développement de Vue2. Mais dans Vite, ignorer le suffixe .vue provoquera une erreur.

import Home from &#39;@/views/home&#39; // error
import Home from &#39;@/views/home.vue&#39; // ok
Copier après la connexion

Selon la réponse de You Dada, l'obligation d'écrire des suffixes est en fait intentionnellement conçue de cette façon, c'est-à-dire que tout le monde est encouragé à écrire comme ça.

Mais si vous ne voulez vraiment pas écrire, le support officiel est fourni.

// vite.config.ts
import { defineConfig } from &#39;vite&#39;
export default defineConfig({
  resolve: {
    extensions: [&#39;.js&#39;, &#39;.ts&#39;, &#39;.jsx&#39;, &#39;.tsx&#39;, &#39;.json&#39;, &#39;.vue&#39;]
  }
})
Copier après la connexion

Il convient de noter ici que lors de la configuration manuelle des extensions, n'oubliez pas d'ajouter le suffixe des autres types de fichiers, car d'autres types de fichiers tels que js peuvent ignorer l'importation du suffixe par défaut. Si vous ne l'ajoutez pas, l'importation. d'autres types de fichiers deviendront nécessaires.

Bien que vous puissiez le faire, après tout, les documents officiels disent qu'il n'est pas recommandé d'ignorer le suffixe .vue, il est donc recommandé de toujours écrire .vue honnêtement dans le développement réel.

【Recommandation associée : "Tutoriel 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!

Étiquettes associées:
vue
source:juejin.im
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal