[Organisasi dan Perkongsian] 8 Petua Pembangunan Vue Praktikal
Artikel ini menyusun dan berkongsi 8 kemahiran pembangunan Vue yang hebat, termasuk penyahgandingan parameter penghalaan, komponen berfungsi, skop gaya, penggunaan lanjutan jam tangan, pemantauan jam tangan berbilang pembolehubah, dll. Saya harap ia akan membantu semua orang!
1. Penyahgandingan parameter penghalaan
Biasanya parameter penghalaan digunakan dalam komponen, kebanyakan orang Akan lakukan perkara berikut.
export default { methods: { getParamsId() { return this.$route.params.id } } }
Menggunakan $route dalam komponen menghasilkan gandingan yang kuat ke laluan sepadannya, mengehadkan fleksibiliti komponen dengan mengehadkannya kepada URL tertentu. Pendekatan yang betul ialah memisahkannya melalui prop.
const router = new VueRouter({ routes: [{ path: /user/:id , component: User, props: true }] })
Selepas menetapkan atribut props laluan kepada benar, komponen boleh menerima parameter params melalui props. [Cadangan berkaitan: tutorial video vuejs, pembangunan bahagian hadapan web]
export default { props: [ id ], methods: { getParamsId() { return this.id } } }
Anda juga boleh mengembalikan prop melalui mod berfungsi.
const router = new VueRouter({ routes: [{ path: /user/:id , component: User, props: (route) => ({ id: route.query.id }) }] })
2. Komponen berfungsi
Komponen fungsian tidak mempunyai kewarganegaraan, ia tidak boleh dibuat seketika dan tidak mempunyai sebarang kitaran hayat atau kaedah. Mencipta komponen berfungsi juga semudah menambah pengisytiharan berfungsi pada templat anda. Ia biasanya sesuai untuk komponen yang hanya bergantung pada perubahan data luaran dan meningkatkan prestasi pemaparan kerana ringan. Semua yang diperlukan oleh komponen dihantar melalui parameter konteks. Ia adalah objek konteks, lihat dokumentasi untuk sifat tertentu. props di sini ialah objek yang mengandungi semua sifat terikat.
<template functional> <div class="list"> <div class="item" v-for="item in props.list" :key="item.id" @click="props.itemClick(item)"> <p>{{item.title}}</p> <p>{{item.content}}</p> </div> </div> </template>
Kegunaan komponen induk
<template> <div> <List :list="list" :itemClick="item => (currentItem = item)" /> </div> </template>
import List from @/components/List.vue export default { components: { List }, data() { return { list: [{ title: title , content: content }], currentItem: } } }
3. Skop gaya
Diubah suai semasa pembangunan Ketiga -gaya komponen parti adalah sangat biasa, tetapi disebabkan pengasingan gaya atribut berskop, anda mungkin perlu mengalih keluar skop atau mencipta gaya baharu. Amalan ini mempunyai kesan sampingan (pencemaran gaya komponen, kekurangan keanggunan) dan dilaksanakan menggunakan penembusan gaya dalam prapemproses CSS. Kami boleh menggunakan>>> atau /deep/ untuk menyelesaikan masalah ini:
<style scoped> Outer layer >>> .el-checkbox { display: block; font-size: 26px; .el-checkbox__label { font-size: 16px; } } </style>
<style scoped> /deep/ .el-checkbox { display: block; font-size: 26px; .el-checkbox__label { font-size: 16px; } } </style>
Penggunaan lanjutan jam tangan
jam tangan dicetuskan apabila sifat pendengar berubah Kadangkala kita mahu jam tangan dilaksanakan serta-merta selepas komponen dibuat. Satu cara yang mungkin terlintas di fikiran ialah memanggilnya sekali semasa kitaran hayat penciptaan, tetapi itu bukan cara yang elegan untuk menulisnya, jadi mungkin kita boleh menggunakan sesuatu seperti ini.
export default { data() { return { name: Joe } }, watch: { name: { handler: sayName , immediate: true } }, methods: { sayName() { console.log(this.name) } } }
Deep Listening
Apabila mendengar objek, jam tangan tidak akan dicetuskan apabila sifat di dalam objek berubah, jadi kita boleh menyediakan pemantauan mendalam untuknya.
export default { data: { studen: { name: Joe , skill: { run: { speed: fast } } } }, watch: { studen: { handler: sayName , deep: true } }, methods: { sayName() { console.log(this.studen) } } }
Cetuskan pendengar untuk melaksanakan berbilang kaedah
Menggunakan tatasusunan, anda boleh menetapkan berbilang bentuk, termasuk rentetan, fungsi, objek.
export default { data: { name: Joe }, watch: { name: [ sayName1 , function(newVal, oldVal) { this.sayName2() }, { handler: sayName3 , immaediate: true } ] }, methods: { sayName1() { console.log( sayName1==> , this.name) }, sayName2() { console.log( sayName2==> , this.name) }, sayName3() { console.log( sayName3==> , this.name) } } }
5 jam tangan memantau berbilang pembolehubah
jam tangan itu sendiri tidak boleh memantau berbilang pembolehubah. Walau bagaimanapun, kita boleh "mendengar pelbagai pembolehubah" dengan mengembalikan objek dengan sifat yang dikira dan kemudian mendengar objek itu.
export default { data() { return { msg1: apple , msg2: banana } }, compouted: { msgObj() { const { msg1, msg2 } = this return { msg1, msg2 } } }, watch: { msgObj: { handler(newVal, oldVal) { if (newVal.msg1 != oldVal.msg1) { console.log( msg1 is change ) } if (newVal.msg2 != oldVal.msg2) { console.log( msg2 is change ) } }, deep: true } } }
6 Parameter acara $event
$event ialah pembolehubah khas objek acara, yang dalam beberapa senario ialah Kami. menyediakan lebih banyak parameter yang tersedia untuk melaksanakan fungsi yang kompleks. Peristiwa Asli: Berkelakuan sama seperti objek acara lalai dalam Peristiwa Asli.
<template> <div> <input type="text" @input="inputHandler( hello , $event)" /> </div> </template>
export default { methods: { inputHandler(msg, e) { console.log(e.target.value) } } }
Acara tersuai: Diwakili dalam acara tersuai sebagai menangkap nilai yang dilemparkan daripada komponen anak.
export default { methods: { customEvent() { this.$emit( custom-event , some value ) } } }
<template> <div> <my-item v-for="(item, index) in list" @custom-event="customEvent(index, $event)"> </my-list> </div> </template>
export default { methods: { customEvent(index, e) { console.log(e) // some value } } }
7 Pendengar acara terprogram
Contohnya, tentukan pemasa apabila halaman dipasang. pemasa perlu dikosongkan apabila halaman dimusnahkan. Ini nampaknya tidak menjadi masalah. Tetapi melihat lebih dekat, satu-satunya tujuan this.timer adalah untuk mendapatkan nombor pemasa sebelumDestroy, jika tidak, ia tidak berguna.
export default { mounted() { this.timer = setInterval(() => { console.log(Date.now()) }, 1000) }, beforeDestroy() { clearInterval(this.timer) } }
Sebaik-baiknya hanya mengakses cangkuk kitaran hayat jika boleh. Ini bukan masalah serius tetapi boleh dianggap mengelirukan. Kami boleh menyelesaikan masalah ini dengan menggunakan atau sekali untuk mendengar kemusnahan kitaran hayat halaman:
export default { mounted() { this.creatInterval( hello ) this.creatInterval( world ) }, creatInterval(msg) { let timer = setInterval(() => { console.log(msg) }, 1000) this.$once( hook:beforeDestroy , function() { clearInterval(timer) }) } }
使用这种方法,即使我们同时创建多个定时器,也不影响效果。这是因为它们将在页面被销毁后以编程方式自动清除。8.监听组件生命周期通常我们使用 $emit 监听组件生命周期,父组件接收事件进行通知。
子组件
export default { mounted() { this.$emit( listenMounted ) } }
父组件
<template> <div> <List @listenMounted="listenMounted" /> </div> </template>
其实有一种简单的方法就是使用@hook 来监听组件的生命周期,而不需要在组件内部做任何改动。同样,创建、更新等也可以使用这个方法。
<template> <List @hook:mounted="listenMounted" /> </template>
Atas ialah kandungan terperinci [Organisasi dan Perkongsian] 8 Petua Pembangunan Vue Praktikal. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Terdapat tiga cara untuk merujuk kepada fail JS dalam vue.js: Secara langsung tentukan jalan menggunakan & lt; skrip & gt; tag ;; import dinamik menggunakan cangkuk kitaran hayat yang dipasang (); dan mengimport melalui Perpustakaan Pengurusan Negeri VUEX.

Pilihan Watch di Vue.js membolehkan pemaju mendengar perubahan dalam data tertentu. Apabila data berubah, tontonkan mencetuskan fungsi panggil balik untuk melakukan paparan kemas kini atau tugas lain. Pilihan konfigurasinya termasuk segera, yang menentukan sama ada untuk melaksanakan panggilan balik dengan serta -merta, dan mendalam, yang menentukan sama ada untuk mendengarkan secara rekursif terhadap objek atau tatasusunan.

Anda boleh menambah fungsi ke butang VUE dengan mengikat butang dalam templat HTML ke kaedah. Tentukan kaedah dan tulis logik fungsi dalam contoh Vue.

Menggunakan bootstrap dalam vue.js dibahagikan kepada lima langkah: Pasang bootstrap. Import bootstrap di main.js. Gunakan komponen bootstrap secara langsung dalam templat. Pilihan: Gaya tersuai. Pilihan: Gunakan pemalam.

Vue.js mempunyai empat kaedah untuk kembali ke halaman sebelumnya: $ router.go (-1) $ router.back () menggunakan & lt; router-link to = & quot;/& quot; Komponen Window.History.Back (), dan pemilihan kaedah bergantung pada tempat kejadian.

Melaksanakan kesan menatal marquee/teks di VUE, menggunakan animasi CSS atau perpustakaan pihak ketiga. Artikel ini memperkenalkan cara menggunakan animasi CSS: Buat teks tatal dan bungkus teks dengan & lt; div & gt;. Tentukan animasi CSS dan tetapkan limpahan: tersembunyi, lebar, dan animasi. Tentukan frasa key, set Transform: TranslateX () pada permulaan dan akhir animasi. Laraskan sifat animasi seperti tempoh, kelajuan tatal, dan arah.

Dalam vue.js, pemuatan malas membolehkan komponen atau sumber dimuatkan secara dinamik seperti yang diperlukan, mengurangkan masa pemuatan halaman awal dan meningkatkan prestasi. Kaedah pelaksanaan khusus termasuk menggunakan & lt; menyimpan-Alive & gt; dan & lt; komponen adalah & gt; komponen. Harus diingat bahawa pemuatan malas boleh menyebabkan masalah fouc (skrin percikan) dan harus digunakan hanya untuk komponen yang memerlukan pemuatan malas untuk mengelakkan overhead prestasi yang tidak perlu.

Anda boleh menanyakan versi VUE dengan menggunakan Vue Devtools untuk melihat tab VUE dalam konsol penyemak imbas. Gunakan NPM untuk menjalankan arahan "NPM LIST -G VUE". Cari item VUE dalam objek "Dependencies" fail Package.json. Untuk projek Vue CLI, jalankan perintah "Vue -version". Semak maklumat versi di & lt; skrip & gt; Tag dalam fail HTML yang merujuk kepada fail VUE.
