Rumah >hujung hadapan web >tutorial js >Mula menulis aplikasi vue.js berasaskan kelas dalam typescript

Mula menulis aplikasi vue.js berasaskan kelas dalam typescript

Joseph Gordon-Levitt
Joseph Gordon-Levittasal
2025-02-14 09:45:11654semak imbas

Get Started Writing Class-based Vue.js Apps in TypeScript

vue.js 3.0 dan typescript adalah kombinasi yang kuat

vue.js 3.0 akan membawa sokongan yang lebih baik kepada pengguna TypeScript, termasuk sokongan asli untuk komponen berasaskan kelas dan kesimpulan jenis yang lebih baik. Tetapi kini anda boleh mula menulis aplikasi VUE menggunakan TypeScript menggunakan Vue CLI, alat baris arahan VUE.

kelebihan komponen berasaskan kelas dan typeScript

Komponen berasaskan kelas di Vue.js boleh ditulis menggunakan kelas Typescript, yang menyediakan pemeriksaan dan pemeliharaan jenis yang lebih baik. Kelas -kelas ini boleh diisytiharkan menggunakan

penghias dalam pakej vue-property-decorator. @Component Penghias lain yang disediakan oleh pakej

boleh meningkatkan lagi komponen berasaskan kelas. Ini termasuk vue-property-decorator untuk mengisytiharkan prop sebagai atribut kelas, @Prop untuk memancarkan peristiwa dari kaedah kelas, dan @Emit untuk membuat pemerhati. @Watch

kelebihan typescript dan vue.js

Typescript digunakan bersamaan dengan Vue.js dengan pelbagai kelebihan, termasuk pemeriksaan jenis statik untuk pengesanan awal kesilapan, perkhidmatan autokomplete, navigasi dan refactoring yang lebih baik, dan menyediakan kod yang lebih berstruktur dan extensible untuk perpustakaan aplikasi kompleks.

September lalu, Evan You (pencipta Vue.js) mengumumkan rancangan untuk versi utama perpustakaan seterusnya. Vue 3.0 akan membawa pengalaman yang lebih baik kepada pengguna TypeScript, termasuk sokongan asli untuk komponen berasaskan kelas, dan sokongan yang lebih baik untuk kesimpulan jenis semasa menulis kod.

Berita baiknya ialah anda tidak perlu menunggu sehingga pembebasan 3.0 (dijangka pada Q3 2019) untuk mula menulis aplikasi VUE menggunakan TypeScript. Alat baris perintah Vue Vue CLI menyediakan pilihan untuk memulakan projek menggunakan alat membina TypeScript yang telah dikonfigurasikan dan termasuk modul

yang disokong secara rasmi yang membolehkan anda menulis komponen VUE sebagai kelas TypeScript. vue-class-component

Artikel ini mengandaikan bahawa anda sudah biasa dengan asas -asas Vue dan TypeScript. Mari lihat bagaimana anda mula memanfaatkan penaipan statik dan komponen berasaskan kelas hari ini.

membuat projek vue typescript

Salah satu halangan untuk memulakan dengan TypeScript boleh mengkonfigurasi alat binaan yang diperlukan. Syukurlah, Vue CLI menyelesaikan masalah ini untuk kami. Kita boleh menggunakannya untuk membuat projek untuk kita di mana pengkompil Typescript disediakan dan siap.

mari kita memperkenalkan proses menggunakan TypeScript secara ringkas untuk menyokong membuat projek VUE baru.

Jalankan arahan berikut dari baris terminal/arahan (dan dengan asumsi anda mempunyai Node.js dipasang) untuk memasang Vue CLI secara global:

<code class="language-bash">npm install -g @vue/cli</code>
Seterusnya, mari buat projek baru dan tentukan nama projek:

<code class="language-bash">vue create vue-typescript-demo</code>
Ini juga akan menjadi nama subfolder untuk projek pemasangan. Selepas menekan ENTER , anda akan diminta untuk memilih pratetap lalai atau memilih pilihan secara manual untuk dipasang.

Pilih pilihan manual dan anda akan melihat satu set pilihan selanjutnya. Pilihan yang diperlukan adalah tentu saja TypeScript, tetapi anda juga mungkin mahu memilih Vuex kerana kami akan melihat beberapa penghias khusus VUEX kemudian.

Selepas memilih pilihan projek, skrin seterusnya akan meminta anda jika anda ingin menggunakan sintaks komponen gaya kelas. Katakan "ya" untuk ini. Anda kemudian akan ditanya sama ada anda mahu "menggunakan Babel dengan TypeScript untuk polyfills untuk pengesanan automatik". Ini adalah idea yang baik untuk projek yang anda akan menyokong pelayar yang lebih tua. Jawab seluruh soalan yang diperlukan dan proses pemasangan harus bermula.

Arahan mengenai Sokongan Editor/IDE

Banyak editor kod dan IDES kini menyokong TypeScript. Dalam penyelesaian berbayar, perisian JetBrains (seperti WebStorm, PHPStorm) mempunyai sokongan yang sangat baik untuk kedua -dua VUE dan TypeScript. Jika anda sedang mencari alternatif percuma, saya cadangkan kod Visual Studio Microsoft: bersempena dengan sambungan Vetur, ia menyediakan pemeriksaan autokomplete dan jenis yang sangat baik.

Komponen berasaskan kelas

Mari kita lihat bagaimana menulis komponen Vue menggunakan kelas. Walaupun ciri ini tidak terhad kepada TypeScript, menggunakan komponen berasaskan kelas membantu TS untuk menyediakan pemeriksaan jenis yang lebih baik, dan pada pendapat saya, ia menjadikan komponen lebih mudah dan mudah dikekalkan.

mari kita lihat sintaks. Jika anda mengikuti langkah -langkah di bahagian sebelumnya dan mencipta projek baru menggunakan Vue CLI, pergi ke direktori projek, pergi ke subfolder src , dan buka app.vue . Apa yang kita berminat di sini ialah bahagian <script></script> kerana ia adalah satu -satunya bahagian yang berbeza dari komponen Fail Single Vue (SFC).

<code class="language-bash">npm install -g @vue/cli</code>

Perhatikan bahawa tag <script></script> itu sendiri mempunyai atribut ts yang ditetapkan ke lang. Ini sangat penting untuk alat binaan dan editor anda untuk mentafsirkan kod dengan betul sebagai typescript.

Untuk mengisytiharkan komponen berasaskan kelas, anda perlu membuat kelas yang memanjangkan VUE (di sini ia diimport terus dari pakej vue-property-decorator dan bukan modul vue).

pengisytiharan kelas perlu bermula dengan @Component penghias:

<code class="language-bash">vue create vue-typescript-demo</code>

anda mungkin menyedari bahawa dalam kod dari komponen App.vue, penghias juga boleh menerima objek yang boleh digunakan untuk menentukan komponen, alat peraga, dan penapis:

<code class="language-typescript">import { Component, Vue } from 'vue-property-decorator';
import HelloWorld from './components/HelloWorld.vue';

@Component({
  components: {
    HelloWorld,
  },
})
export default class App extends Vue {}</code>

atribut data

Apabila mengisytiharkan komponen berasaskan objek, anda akan akrab dengan fungsi yang mesti mengisytiharkan sifat data komponen sebagai mengembalikan objek data:

<code class="language-typescript">@Component
class MyComponent extends Vue {}</code>

... Untuk komponen berasaskan kelas, kita boleh mengisytiharkan atribut data sebagai atribut kelas biasa:

<code class="language-typescript">@Component({
  components: { MyChildComponent },
  props: {
    id: {
      type: String,
      required: true
    }
  },
  filters: {
    currencyFormatter
  }
})
class MyComponent extends Vue {}</code>

Properties Pengkomputeran

Satu lagi kelebihan menggunakan kelas sebagai komponen adalah sintaks bersih untuk mengisytiharkan sifat -sifat yang dikira, menggunakan kaedah getter:

<code class="language-javascript">{
  data: () => ({
    todos: [],
  })
}</code>

Begitu juga, anda boleh membuat sifat dikira yang boleh ditulis dengan menggunakan kaedah setter:

<code class="language-typescript">@Component
class TodoList extends Vue {
  todos: [];
}</code>

kaedah

Kaedah komponen boleh diisytiharkan dengan cara yang sama ringkas, seperti kaedah kelas:

<code class="language-bash">npm install -g @vue/cli</code>

Pada pendapat saya, sintaks mudah untuk mengisytiharkan kaedah, atribut data, dan atribut yang dikira membuat komponen berasaskan kelas dan membaca lebih baik daripada komponen berasaskan objek asal.

penghias

kita boleh melangkah lebih jauh dan menggunakan penghias tambahan yang disediakan oleh pakej vue-property-decorator. Ia menyediakan enam penghias tambahan untuk menulis komponen berasaskan kelas:

  • @Emit
  • @Inject
  • @Model
  • @Prop
  • @Provide Mari kita lihat ketiga -tiga anda mungkin mendapati yang paling berguna.
  • @Watch
  • anda boleh mengisytiharkan alat peraga anda sebagai harta kelas menggunakan penghias
dan bukannya lulus objek konfigurasi prop ke penghias

.

@Prop seperti penghias lain,

boleh menerima pelbagai parameter, termasuk jenis, jenis array atau objek pilihan:

@Prop @Component Apabila digunakan dengan TypeScript, anda harus menambah pengendali yang tidak kosong (!) Kepada nama prop anda untuk memberitahu pengkompil bahawa prop akan mempunyai nilai yang tidak kosong (kerana TS tidak tahu bahawa nilai-nilai ini akan diluluskan ketika memulakan komponen dalam komponen):

<code class="language-bash">vue create vue-typescript-demo</code>

Perhatikan bahawa seperti yang ditunjukkan di atas, anda boleh meletakkan deklarasi penghias dan atribut sepenuhnya pada satu baris jika anda lebih suka. @Prop

<code class="language-typescript">import { Component, Vue } from 'vue-property-decorator';
import HelloWorld from './components/HelloWorld.vue';

@Component({
  components: {
    HelloWorld,
  },
})
export default class App extends Vue {}</code>

Satu lagi penghias mudah adalah

, yang membolehkan anda mengeluarkan peristiwa dari mana -mana kaedah kelas. Acara yang dipancarkan akan menggunakan nama kaedah (nama unta akan ditukar kepada kebab-kes), kecuali nama peristiwa alternatif diserahkan kepada penghias.
<code class="language-typescript">@Component
class MyComponent extends Vue {}</code>

Jika kaedah mengembalikan nilai, nilai akan dikeluarkan sebagai muatan acara, serta mana -mana parameter yang diserahkan kepada kaedah tersebut.

@Emit Kod di atas akan memancarkan acara

dengan muatan nilai

. @Emit

Membuat pemerhati dengan penghias ini sangat mudah. Ia menerima dua parameter: nama harta yang diperhatikan dan objek pilihan pilihan.
<code class="language-typescript">@Component({
  components: { MyChildComponent },
  props: {
    id: {
      type: String,
      required: true
    }
  },
  filters: {
    currencyFormatter
  }
})
class MyComponent extends Vue {}</code>

add-todo this.newTodo Ringkasan

@Watch Saya harap artikel ini menunjukkan kepada anda bahawa ia tidak semestinya sukar untuk mula menulis aplikasi VUE menggunakan TypeScript. Dengan memulakan projek baru menggunakan CLI, anda boleh dengan cepat menyediakan alat binaan yang diperlukan. Termasuk sokongan untuk komponen berasaskan kelas dan penghias tambahan akan membolehkan anda menulis ringkas, Idiomatik Typescript segera!

Ingin belajar vue.js dari awal? Gunakan SitePoint Premium untuk mendapatkan koleksi lengkap buku Vue yang meliputi asas, projek, tip dan alat, dan banyak lagi. Sertai sekarang hanya $ 9 sebulan atau cuba percubaan percuma 7 hari kami.
<code class="language-javascript">{
  data: () => ({
    todos: [],
  })
}</code>

Soalan Lazim (FAQ) mengenai Vue.js berasaskan kelas menggunakan TypeScript

Apakah faedah menggunakan typescript dan vue.js?

Typescript menyediakan menaip statik, yang boleh menjadi kelebihan yang ketara apabila membangunkan aplikasi besar. Ia membantu menangkap kesilapan awal dalam proses pembangunan, menjadikan kod lebih mantap dan lebih mudah untuk dikekalkan. Typescript juga menyediakan perkhidmatan penyelesaian, navigasi dan pembinaan semula secara automatik untuk menjadikan proses pembangunan lebih cekap. Apabila digunakan dengan vue.js, TypeScript membolehkan asas kod yang lebih berstruktur dan diperluaskan, menjadikannya lebih mudah untuk mengurus dan membangunkan aplikasi yang kompleks.

Bagaimana untuk menyediakan projek Vue.js menggunakan TypeScript?

Menyediakan projek Vue.js dengan TypeScript melibatkan beberapa langkah. Pertama, jika anda tidak memasang Vue CLI, anda perlu memasangnya. Kemudian, gunakan Vue CLI untuk membuat projek baru dan pilih TypeScript sebagai ciri semasa proses penciptaan. Vue CLI akan menubuhkan konfigurasi TypeScript untuk anda. Anda kemudian boleh mula menulis komponen VUE menggunakan TypeScript.

Apakah komponen berasaskan kelas dalam vue.js?

Komponen berasaskan kelas di Vue.js adalah cara untuk menentukan komponen menggunakan kelas ES6. Pendekatan ini dapat menjadikan komponen anda lebih mudah dibaca dan difahami, terutama bagi pemaju dari latar belakang dalam pengaturcaraan berorientasikan objek. Komponen berasaskan kelas juga berfungsi dengan baik dengan TypeScript, yang membolehkan anda memanfaatkan keupayaan TypeScript, seperti jenis statik dan antara muka.

Bagaimana menggunakan TypeScript untuk menentukan komponen berasaskan kelas dalam vue.js?

Untuk menentukan komponen berasaskan kelas menggunakan TypeScript dalam vue.js, anda perlu menggunakan penghias vue-class-component. Penghias ini membolehkan anda menulis komponen sebagai kelas ES6. Di dalam kelas, anda boleh menentukan data, kaedah, dan cangkuk kitaran hayat seperti yang anda lakukan dalam komponen VUE biasa.

Bolehkah saya menggunakan Arahan Vue.js dalam komponen berasaskan kelas?

Ya, anda boleh menggunakan Arahan Vue.js dalam komponen berasaskan kelas. Sintaks adalah sama seperti dalam komponen VUE biasa. Anda boleh menggunakan v-model, v-if, v-for dan arahan lain dalam templat.

Bagaimana menggunakan alat peraga dalam komponen berasaskan kelas?

Dalam komponen berasaskan kelas, anda boleh menentukan prop menggunakan @Prop penghias. Penghias ini membolehkan anda menentukan jenis prop dan sama ada ia diperlukan atau mempunyai nilai lalai.

Bagaimana menggunakan sifat yang dikira dalam komponen berasaskan kelas?

Dalam komponen berasaskan kelas, anda boleh menentukan sifat yang dikira sebagai kaedah getter dalam kelas. Hasil dari kaedah getter akan di -cache dan dikira semula hanya jika kebergantungannya berubah.

Bagaimana menggunakan pemerhati dalam komponen berasaskan kelas?

Dalam komponen berasaskan kelas, anda boleh menggunakan penghias @Watch untuk menentukan pemerhati. Penghias ini membolehkan anda menentukan atribut untuk diperhatikan dan kaedah yang akan dipanggil apabila atribut berubah.

Bolehkah saya menggunakan Mixin dalam komponen berasaskan kelas?

Ya, anda boleh menggunakan mixin dalam komponen berasaskan kelas. Anda boleh menentukan Mixin sebagai kelas dan memasukkannya ke dalam komponen anda menggunakan penghias @Mixins.

Bagaimana menggunakan API kombinasi Vue.js dengan TypeScript?

vue.js kombinasi API berfungsi dengan baik dengan typescript. Anda boleh menentukan data dan fungsi reaktif anda dalam kaedah setup dan menetapkan jenis untuk menggunakan TypeScript. Ini membolehkan anda memanfaatkan keupayaan menaip statik dan autocomplete statik TypeScript untuk menjadikan kod anda lebih mantap dan mudah dibangunkan.

Atas ialah kandungan terperinci Mula menulis aplikasi vue.js berasaskan kelas dalam typescript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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