Jadual Kandungan
Komposisi Api memisahkan Vue2 Option Api untuk mencapai gandingan rendah dan kohesi tinggi
Tentukan Cangkuk tersuai Vue3:
Perenggan di atas ialah kandungan dokumen rasmi Vue3, yang boleh diringkaskan dan ditambah sebagai:
Mixins
Dalam komponen
Rumah hujung hadapan web View.js Bagaimana untuk menyesuaikan Cangkuk dalam Vue3

Bagaimana untuk menyesuaikan Cangkuk dalam Vue3

May 11, 2023 pm 06:22 PM
vue3 hooks

    Komposisi Api memisahkan Vue2 Option Api untuk mencapai gandingan rendah dan kohesi tinggi

    Nota: Jika Komposisi Api digunakan di bawah komponen dengan fungsi yang kompleks dan sejumlah besar code , kami bekerjasama dengan Hooks tersuai untuk menulis kod dalam blok berfungsi, dan pembolehubah dan kaedah ditakrifkan dan dipanggil bersama-sama Contohnya, fungsi A menyepadukan pembolehubah responsif dan kaedah Untuk penyelenggaraan kemudian, kami hanya perlu menukar kod tersebut Modul fungsi. Seperti Vue2 dalam Option Api, anda perlu memberi perhatian kepada kaedah dan data yang tersebar secara logik pada masa yang sama.

    Jadi menulis Cangkuk tersuai dalam Vue3 mesti dikuasai! Semuanya merangkumi idea gandingan rendah dan kohesi tinggi Vue3 Composition Api! Selepas membaca dokumen rasmi dan templat pentadbir sumber terbuka, pengarang menggunakan sejumlah besar Hooks tersuai!

    Tentukan Cangkuk tersuai Vue3:

    Walaupun pegawai tidak menyatakan dengan jelas atau mentakrifkan Cangkuk tersuai, ia digunakan di mana-mana

    Ekstrak dalam bentuk fungsi Beberapa kaedah boleh guna semula digantung seperti cangkuk dan boleh diperkenalkan dan dipanggil pada bila-bila masa untuk mencapai matlamat kohesi tinggi dan gandingan rendah

    • Ekstrak fungsi boleh guna semula ke dalam Fail JS luaran

    • Nama fungsi/nama fail bermula dengan penggunaan, dalam bentuk: useXX

    • Menyahbina dan mendedahkan pembolehubah atau kaedah reaktif secara eksplisit apabila merujuk Ia keluar seperti: const {nameRef, Fn} = useXX()

    • (nyahbina pembolehubah dan kaedah cangkuk tersuai dalam fungsi persediaan)

    Contoh:
    import { ref, watch } from 'vue';
    const useAdd= ({ num1, num2 })  =>{
        const addNum = ref(0)
        watch([num1, num2], ([num1, num2]) => {
            addFn(num1, num2)
        })
        const addFn = (num1, num2) => {
            addNum.value = num1 + num2
        }
        return {
            addNum,
            addFn
        }
    }
    export default useAdd
    Salin selepas log masuk

    Fungsi tolak-Cangkuk

    • //减法功能-Hook
      import { ref, watch } from 'vue';
      export function useSub  ({ num1, num2 }){
          const subNum = ref(0)
          watch([num1, num2], ([num1, num2]) => {
              subFn(num1, num2)
          })
          const subFn = (num1, num2) => {
              subNum.value = num1 - num2
          }
          return {
              subNum,
              subFn
          }
      }
      Salin selepas log masuk

    • Komponen pengiraan penambahan dan penolakan
    • rreee

      Hubungan antara Cangkuk tersuai Vue3 dan Mixin dalam era Vue2:

    • Mixin Tidak Mencukupi
      Dalam Vue 2, mixin mengabstrak beberapa logik komponen ke dalam alat utama blok boleh guna semula. Walau bagaimanapun, mereka mempunyai beberapa masalah:
    • 1 Mixin terdedah kepada konflik: kerana sifat setiap mixin digabungkan ke dalam komponen yang sama, untuk mengelakkan konflik nama harta, anda masih perlu memahami ciri-ciri satu sama lain. .

    • 2. Kebolehgunaan semula adalah terhad: kita tidak boleh menghantar sebarang parameter kepada mixin untuk menukar logiknya, yang mengurangkan fleksibilitinya dalam logik abstrak.

    Perenggan di atas ialah kandungan dokumen rasmi Vue3, yang boleh diringkaskan dan ditambah sebagai:

    1 Kaedah dan atribut mixin yang sukar dikesan

    Vue3 Cangkuk tersuai boleh

    Cangkuk tersuai Vue3, mendedahkan pembolehubah atau kaedah responsif secara eksplisit semasa merujuk, seperti:

    const {nameRef, Fn} = useXX()

    Mixins

    <template>
        <div>
            num1:<input v-model.number="num1"  />
            <br />
            num2:<input v-model.number="num2"  />
        </div>
        <span>加法等于:{{ addNum }}</span>
        <br />
        <span>减法等于:{{ subNum }}</span>
    </template>
    
    <script setup>
    import { ref } from &#39;vue&#39;
    import useAdd from &#39;./useAdd.js&#39;     //引入自动hook 
    import { useSub } from &#39;./useSub.js&#39; //引入自动hook 
    
    const num1 = ref(2)
    const num2 = ref(1)
    //加法功能-自定义Hook(将响应式变量或者方法形式暴露出来)
    const { addNum, addFn } = useAdd({ num1, num2 })
    addFn(num1.value, num2.value)
    //减法功能-自定义Hook (将响应式变量或者方法形式暴露出来)
    const { subNum, subFn } = useSub({ num1, num2 })
    subFn(num1.value, num2.value)
    </script>
    Salin selepas log masuk

    Kekeliruan Mixin yang tidak diketahui, kami tidak dapat mengetahui dari mana fail Mixin berasal, yang membawa kesukaran kepada penyelenggaraan kemudian

    Cangkuk tersuai Vue3

    export default {
      mixins: [ a, b, c, d, e, f, g ], //一个组件内可以混入各种功能的Mixin
      mounted() {
        console.log(this.name)  //问题来了,这个name是来自于哪个mixin?
      }
    }
    Salin selepas log masuk
    kami Adalah mudah untuk melihat pembolehubah reaktif dan kaedah yang didedahkan secara eksplisit oleh setiap Cangkuk

    2. Anda tidak boleh menghantar parameter kepada Mixin untuk menukar logik

    Tetapi Cangkuk tersuai Vue3 boleh:

    cangkuk adat VUE3 boleh lulus mana -mana parameter untuk menukar logiknya , tetapi tidak boleh menghantar parameter terus kepada Mixin, kerana Mixin tidak didedahkan dalam bentuk fungsi dan tidak melepasi parameter

    Cangkuk tersuai Vue3

    Tambahkan Cangkuk purata berdasarkan contoh di atas

    //加法功能-自定义Hook(将响应式变量或者方法形式暴露出来)
    const { addNum, addFn } = useAdd({ num1, num2 })
    addFn(num1.value, num2.value)
    //减法功能-自定义Hook (将响应式变量或者方法形式暴露出来)
    const { subNum, subFn } = useSub({ num1, num2 })
    subFn(num1.value, num2.value)
    Salin selepas log masuk

    Dalam komponen

    export default {
      mixins: [ addMixin, subMixin], //组件内混入加法和减法Mixin
      mounted(){
          this.add(num1,num2) //调用addMixin内部的add方法
          this.sub(num1,num2) //调用subMixin内部的sub方法
      }  
    }
    Salin selepas log masuk

    Cangkuk tersuai Vue3 boleh melepasi sebarang parameter secara fleksibel untuk menukar logiknya Parameter tidak terhad kepada pembolehubah yang didedahkan oleh cangkuk lain, yang meningkatkan fleksibiliti abstrak Vue3.

    3. Pembolehubah Mixin dengan nama yang sama akan ditimpa

    Vue3 Custom Hook boleh menamakan semula pembolehubah dengan nama yang sama apabila diperkenalkan

    Mixins

    //平均功能-Hook
    import { ref, watch } from "vue";
    export function useAverage(addNum) {
      const averageNum = ref(0);
      watch(addNum, (addNum) => {
        averageFn(addNum);
      });
      const averageFn = (addNum) => {
        averageNum.value = addNum / 2;
      };
      return {
        averageNum,
        averageFn,
      };
    }
    Salin selepas log masuk

    Jika ini Pembolehubah totalNum dengan nama yang sama dikembalikan oleh hasil pengiraan .add(num1,num2) dan this.sub(num1,num2) Memandangkan JS adalah single-thread, yang diperkenalkan kemudian akan menulis ganti TotalNum adalah akhirnya nilai tolak tolak

    Vue3 Custom Hooks

    rreee

    Dalam Vue3 custom Hooks, walaupun penambahan dan tolak Cangkuk kedua-duanya mengembalikan jumlahNum, pembolehubah boleh dinamakan semula dengan mudah menggunakan ES6 pemusnahan objek

    Atas ialah kandungan terperinci Bagaimana untuk menyesuaikan Cangkuk dalam Vue3. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    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

    Alat AI Hot

    Undresser.AI Undress

    Undresser.AI Undress

    Apl berkuasa AI untuk mencipta foto bogel yang realistik

    AI Clothes Remover

    AI Clothes Remover

    Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

    Undress AI Tool

    Undress AI Tool

    Gambar buka pakaian secara percuma

    Clothoff.io

    Clothoff.io

    Penyingkiran pakaian AI

    Video Face Swap

    Video Face Swap

    Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

    Alat panas

    Notepad++7.3.1

    Notepad++7.3.1

    Editor kod yang mudah digunakan dan percuma

    SublimeText3 versi Cina

    SublimeText3 versi Cina

    Versi Cina, sangat mudah digunakan

    Hantar Studio 13.0.1

    Hantar Studio 13.0.1

    Persekitaran pembangunan bersepadu PHP yang berkuasa

    Dreamweaver CS6

    Dreamweaver CS6

    Alat pembangunan web visual

    SublimeText3 versi Mac

    SublimeText3 versi Mac

    Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

    Topik panas

    Tutorial Java
    1659
    14
    Tutorial PHP
    1258
    29
    Tutorial C#
    1232
    24
    Cara menggunakan tinymce dalam projek vue3 Cara menggunakan tinymce dalam projek vue3 May 19, 2023 pm 08:40 PM

    tinymce ialah pemalam editor teks kaya yang berfungsi sepenuhnya, tetapi memperkenalkan tinymce ke dalam vue tidak selancar seperti pemalam teks kaya Vue yang lain tidak sesuai untuk Vue dan @tinymce/tinymce-vue perlu diperkenalkan. dan Ia adalah pemalam teks kaya asing dan belum melepasi versi Cina Anda perlu memuat turun pakej terjemahan dari tapak web rasminya (anda mungkin perlu memintas tembok api). 1. Pasang kebergantungan yang berkaitan npminstalltinymce-Snpminstall@tinymce/tinymce-vue-S2 Muat turun pakej Cina 3. Perkenalkan pakej kulit dan Cina Buat folder tinymce baharu dalam folder awam projek dan muat turun

    Cara memuat semula sebahagian kandungan halaman dalam Vue3 Cara memuat semula sebahagian kandungan halaman dalam Vue3 May 26, 2023 pm 05:31 PM

    Untuk mencapai muat semula separa halaman, kami hanya perlu melaksanakan pemaparan semula komponen setempat (dom). Dalam Vue, cara paling mudah untuk mencapai kesan ini ialah menggunakan arahan v-if. Dalam Vue2, selain menggunakan arahan v-if untuk memaparkan semula dom setempat, kami juga boleh mencipta komponen kosong baharu Apabila kami perlu memuat semula halaman setempat, lompat ke halaman komponen kosong ini dan kemudian masuk semula pengawal beforeRouteEnter dalam komponen kosong. Seperti yang ditunjukkan dalam rajah di bawah, cara mengklik butang muat semula dalam Vue3.X untuk memuatkan semula DOM dalam kotak merah dan memaparkan status pemuatan yang sepadan. Memandangkan pengawal dalam komponen dalam sintaks persediaan skrip dalam Vue3.X hanya mempunyai o

    vue3+vite: Bagaimana untuk menyelesaikan ralat apabila menggunakan memerlukan untuk mengimport imej secara dinamik dalam src vue3+vite: Bagaimana untuk menyelesaikan ralat apabila menggunakan memerlukan untuk mengimport imej secara dinamik dalam src May 21, 2023 pm 03:16 PM

    Penggunaan vue3+vite:src memerlukan pengimportan imej secara dinamik dan laporan ralat dan penyelesaian vue3+vite secara dinamik Jika vue3 dibangunkan menggunakan skrip taip, akan terdapat mesej ralat untuk keperluan untuk memperkenalkan imej tidak boleh digunakan :require(' .../assets/test.png') diimport kerana typescript tidak menyokong require, jadi import digunakan Berikut ialah cara menyelesaikannya: gunakan awaitimport

    Cara Vue3 menghuraikan penurunan harga dan melaksanakan penyerlahan kod Cara Vue3 menghuraikan penurunan harga dan melaksanakan penyerlahan kod May 20, 2023 pm 04:16 PM

    Vue melaksanakan bahagian hadapan blog dan perlu melaksanakan penghuraian markdown Jika terdapat kod, ia perlu melaksanakan penyerlahan kod. Terdapat banyak pustaka parsing markdown untuk Vue, seperti markdown-it, vue-markdown-loader, marked, vue-markdown, dsb. Perpustakaan ini semuanya sangat serupa. Ditanda digunakan di sini, dan highlight.js digunakan sebagai pustaka penonjolan kod. Langkah-langkah pelaksanaan khusus adalah seperti berikut: 1. Pasang perpustakaan bergantung Buka tetingkap arahan di bawah projek vue dan masukkan arahan berikut npminstallmarked-save//marked untuk menukar markdown ke htmlnpmins.

    Bagaimana untuk memilih avatar dan memangkasnya dalam Vue3 Bagaimana untuk memilih avatar dan memangkasnya dalam Vue3 May 29, 2023 am 10:22 AM

    Kesan terakhir ialah memasang komponen VueCropper yarnaddvue-cropper@next Nilai pemasangan di atas adalah untuk Vue3 Jika ia adalah Vue2 atau anda ingin menggunakan kaedah lain untuk merujuk, sila lawati alamat npm rasminya. Ia juga sangat mudah untuk merujuk dan menggunakannya dalam komponen Anda hanya perlu memperkenalkan komponen yang sepadan dan fail gayanya. Saya tidak merujuknya secara global di sini, tetapi hanya memperkenalkan import{userInfoByRequest}from'../js/api. ' dalam fail komponen saya import{VueCropper}dari'vue-cropper&

    Cara menggunakan komponen boleh guna semula Vue3 Cara menggunakan komponen boleh guna semula Vue3 May 20, 2023 pm 07:25 PM

    Prakata Sama ada ia adalah vue atau react, apabila kita menghadapi berbilang kod berulang, kita akan memikirkan cara untuk menggunakan semula kod ini, dan bukannya mengisi fail dengan sekumpulan kod berlebihan. Malah, kedua-dua vue dan react boleh mencapai penggunaan semula dengan mengekstrak komponen, tetapi jika anda menemui beberapa serpihan kod kecil dan anda tidak mahu mengekstrak fail lain, sebagai perbandingan, react boleh digunakan dalam yang sama Isytiharkan widget yang sepadan dalam fail , atau laksanakannya melalui fungsi render, seperti: constDemo:FC=({msg})=>{returndemomsgis{msg}}constApp:FC=()=>{return(

    Cara menggunakan vue3+ts+axios+pinia untuk mencapai penyegaran yang tidak masuk akal Cara menggunakan vue3+ts+axios+pinia untuk mencapai penyegaran yang tidak masuk akal May 25, 2023 pm 03:37 PM

    vue3+ts+axios+pinia menyedari penyegaran yang tidak masuk akal 1. Mula-mula muat turun aiXos dan pinianpmipinia dalam projek--savenpminstallaxios--save2. AxiosResponse}daripada"axios";importaxiosfrom'axios';import{ElMess

    Bagaimana untuk menyelesaikan masalah bahawa selepas projek vue3 dibungkus dan diterbitkan ke pelayan, halaman akses dipaparkan kosong Bagaimana untuk menyelesaikan masalah bahawa selepas projek vue3 dibungkus dan diterbitkan ke pelayan, halaman akses dipaparkan kosong May 17, 2023 am 08:19 AM

    Selepas projek vue3 dibungkus dan diterbitkan ke pelayan, halaman akses memaparkan kosong 1. PublicPath dalam fail vue.config.js diproses seperti berikut: const{defineConfig}=require('@vue/cli-service') module.exports=defineConfig({publicPath :process.env.NODE_ENV==='pengeluaran'?'./':'/&

    See all articles