Rumah > hujung hadapan web > View.js > Ajar anda 5 mata pengetahuan untuk menjadikan pembangunan Vue3 lebih lancar

Ajar anda 5 mata pengetahuan untuk menjadikan pembangunan Vue3 lebih lancar

WBOY
Lepaskan: 2022-02-18 17:12:35
ke hadapan
2322 orang telah melayarinya

Artikel ini membawa anda pengetahuan tentang pembangunan dalam Vue, dan menyusun 5 petua yang boleh meningkatkan kecekapan pembangunan, menjadikan pembangunan projek Vue3 anda lebih lancar dan lancar.

Ajar anda 5 mata pengetahuan untuk menjadikan pembangunan Vue3 lebih lancar

1. Penambahbaikan nama persediaan

gula sintaks persediaan Vue3 adalah perkara yang baik, tetapi masalah pertama yang disebabkan oleh penggunaan sintaks persediaan ialah ia tidak boleh disesuaikan nama, dan apabila kita menggunakan keep-alive, kita sering memerlukan nama Masalah ini biasanya diselesaikan dengan menulis dua tag skrip, satu menggunakan persediaan dan satu tidak menggunakannya, tetapi ini pastinya tidak cukup elegan.

<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>
Salin selepas log masuk

Pada masa ini, dengan bantuan plug-in vite-plugin-vue-setup-extend, kami boleh menyelesaikan masalah ini dengan lebih elegan Daripada menulis dua tag skrip, kami boleh menentukan secara langsung nama pada tag skrip.

Pasang

npm i vite-plugin-vue-setup-extend -D
Salin selepas log masuk

Konfigurasikan

// vite.config.ts
import { defineConfig } from &#39;vite&#39;
import VueSetupExtend from &#39;vite-plugin-vue-setup-extend&#39;
export default defineConfig({
  plugins: [
    VueSetupExtend()
  ]
})
Salin selepas log masuk

Gunakan

<script setup name="OrderList">
import { onMounted } from &#39;vue&#39;
onMounted(() => {
  console.log(&#39;mounted===&#39;)
})
</script>
Salin selepas log masuk

2. Import automatik API

Sintaks persediaan membolehkan kami menggunakan pembolehubah dan kaedah pada templat tanpa mengembalikannya satu demi satu, yang sangat membebaskan tangan kami. Walau bagaimanapun, untuk beberapa VueAPI yang biasa digunakan, seperti ref, dikira, jam tangan, dll., kami masih perlu mengimportnya secara manual pada halaman setiap kali.

Kami boleh merealisasikan import automatik melalui unplugin-auto-import dan menggunakan API Vue dalam fail tanpa mengimport.

Pemasangan

npm i unplugin-auto-import -D
Salin selepas log masuk

Konfigurasi

// 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;]
    })
  ]
})
Salin selepas log masuk

Autoimports.d akan dijana secara automatik selepas pemasangan dan konfigurasi.

// 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 {}
Salin selepas log masuk

Gunakan

<script setup name="OrderList">
// 不用import,直接使用ref
const count = ref(0)
onMounted(() => {
  console.log(&#39;mounted===&#39;)
})
</script>
Salin selepas log masuk

Di atas kami hanya mengimport vue dalam konfigurasi vite.config.ts, import: ['vue'], kecuali Untuk vue, anda juga boleh mengimport yang lain seperti vue-router, vue-use, dsb. mengikut dokumentasi.

Secara peribadi, disyorkan untuk mengimport beberapa API biasa sahaja secara automatik Sebagai contoh, kami sudah biasa dengan API Vue semasa pembangunan dan boleh menulisnya dengan mata tertutup Untuk sesetengah perpustakaan yang tidak dikenali seperti VueUse, Adalah lebih baik untuk menggunakan import Lagipun, editor mempunyai gesaan dan tidak mudah untuk membuat kesilapan.

Selesaikan masalah pelaporan ralat eslint

Menggunakannya tanpa import akan menyebabkan eslint menggesa pelaporan ralat, yang boleh diselesaikan dengan memasang pemalam **vue-global-api** dalam eslintrc.js.

// 安装依赖
npm i vue-global-api -D
// eslintrc.js
module.exports = {
  extends: [
    &#39;vue-global-api&#39;
  ]
}
Salin selepas log masuk

3. Selamat tinggal kepada .value

Seperti yang kita sedia maklum, ref memerlukan kita menambah .value apabila mengakses pembolehubah, yang membuatkan ramai pembangun berasa tidak selesa.

let count = ref(1)
const addCount = () => {
  count.value += 1
}
Salin selepas log masuk

Kemudian, You Dada juga menyerahkan cadangan gula sintaksis ref baharu.

ref: count = 1
const addCount = () => {
  count += 1
}
Salin selepas log masuk

Cadangan ini menimbulkan banyak perbincangan dalam masyarakat sebaik sahaja ia keluar, jadi saya tidak akan bercakap kosong mengenai topik ini di sini.

Di sini saya memperkenalkan cara penulisan yang lain, yang juga merupakan penyelesaian rasmi kemudiannya.

// 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转换
    })
  ]
})
Salin selepas log masuk

Selepas menghidupkannya, anda boleh menulis seperti ini:

let count = $ref(1)
const addCount = () => {
  count++
}
Salin selepas log masuk

Konfigurasi gula sintaksis ini berbeza sedikit mengikut versi yang berbeza pemalam yang saya gunakan:

"vue": "^3.2.2",
"@vitejs/plugin-vue": "^1.9.0",
"@vue/compiler-sfc": "^3.2.5",
"vite": "^2.6.13"
Salin selepas log masuk

4 Import imej secara automatik

Dalam Vue2 kami sering merujuk imej seperti ini:

<img :src="require(&#39;@/assets/image/logo.png&#39;)" />
Salin selepas log masuk

Tetapi keperluan tidak disokong dalam. Vite, dan imej yang dirujuk menjadi Ia kelihatan seperti ini:

<template>
  <img :src="Logo" />
</template>
<script setup>
import Logo from &#39;@/assets/image/logo.png&#39;
</script>
Salin selepas log masuk

Setiap kali anda menggunakan imej, anda perlu mengimportnya, yang jelas melambatkan masa memancing semua orang Pada masa ini, kita boleh menggunakan vite-. plugin-vue-images untuk mengimport imej secara automatik.

Rasanya hebat, tetapi konflik berubah-ubah cenderung berlaku, jadi gunakan dengan berhati-hati!

Pasang

npm i vite-plugin-vue-images -D
Salin selepas log masuk

Konfigurasikan

// 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;] // 指明图片存放目录
    })
  ]
})
Salin selepas log masuk

Gunakan

<template>
  <!-- 直接使用 -->
  <img :src="Logo" />
</template>
<script setup>
// import Logo from &#39;@/assets/image/logo.png&#39;
</script>
Salin selepas log masuk

5. Abaikan akhiran .vue

Saya percaya ramai orang mengabaikan akhiran .vue apabila mengimport fail semasa membangunkan Vue2. Tetapi dalam Vite, mengabaikan akhiran .vue akan menyebabkan ralat.

import Home from &#39;@/views/home&#39; // error
import Home from &#39;@/views/home.vue&#39; // ok
Salin selepas log masuk

Menurut jawapan You Dada, keperluan untuk menulis akhiran sebenarnya sengaja direka dengan cara ini, iaitu semua orang digalakkan untuk menulis dengan cara ini.

Tetapi jika anda benar-benar tidak mahu menulis, sokongan rasmi disediakan.

// 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;]
  }
})
Salin selepas log masuk

Perlu diperhatikan di sini bahawa semasa mengkonfigurasi sambungan secara manual, ingat untuk menambah akhiran jenis fail lain, kerana jenis fail lain seperti js boleh mengabaikan import akhiran secara lalai tidak menambahnya, jenis fail lain boleh diimport. Import menjadi perlu untuk menambah akhiran.

Walaupun anda boleh melakukan ini, bagaimanapun, dokumen rasmi mengatakan bahawa adalah tidak disyorkan untuk mengabaikan akhiran .vue, jadi anda disyorkan untuk tetap menulis .vue secara jujur ​​dalam pembangunan sebenar.

[Cadangan berkaitan: "tutorial vue.js"]

Atas ialah kandungan terperinci Ajar anda 5 mata pengetahuan untuk menjadikan pembangunan Vue3 lebih lancar. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
vue
sumber:juejin.im
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan