Rumah  >  Artikel  >  hujung hadapan web  >  Mari kita bincangkan tentang dua perpustakaan pengurusan negeri Vue Pinia dan Vuex yang manakah harus saya gunakan?

Mari kita bincangkan tentang dua perpustakaan pengurusan negeri Vue Pinia dan Vuex yang manakah harus saya gunakan?

青灯夜游
青灯夜游ke hadapan
2023-02-15 15:08:562769semak imbas

Artikel ini akan membincangkan tentang pengurusan negeri Vue dan memperkenalkan dua perpustakaan pengurusan negeri Vue: Pinia dan Vuex Saya harap ia akan membantu anda!

Mari kita bincangkan tentang dua perpustakaan pengurusan negeri Vue Pinia dan Vuex yang manakah harus saya gunakan?

Vuex dan Pinia ialah perpustakaan Vue.js standard untuk mengurus keadaan aplikasi Vue.js. Mari bandingkan kod, bahasa, ciri dan sokongan komuniti mereka.

Tanpa perpustakaan yang betul, pembangun boleh menjadi sukar untuk mengurus keadaan aplikasi mereka. Vuex dan Pinia ialah perpustakaan Vue.js standard untuk mengendalikan keadaan dalam aplikasi. Kedua-dua perpustakaan ini bagus untuk pengurusan negeri, tetapi disebabkan ciri dan fungsinya yang sangat baik, memilih perpustakaan yang hendak digunakan untuk projek anda memerlukan masa dan boleh mengecewakan. Nah, kita akan melihat mengapa satu adalah yang terbaik dalam artikel ini.

Dalam artikel ini, kita akan melihat perbandingan kod, varian, fungsinya dan yang mana satu disyorkan untuk digunakan untuk mengurus aplikasi keadaan anda dengan contoh kod sebenar untuk pemahaman yang lebih baik. Kami juga akan mempertimbangkan bahasa, ciri dan sokongan komuniti setiap produk.

Pengenalan kepada Pinia dan Vuex

Saya akan meringkaskan secara ringkas Vuex dan Pinia. Jika anda mahukan penjelasan yang lebih teliti, saya syorkan membaca dokumentasi Vuex dan dokumentasi Pinia. [Cadangan berkaitan: tutorial video vuejs, pembangunan bahagian hadapan web]

Apakah Pinia?

Pinia ialah perpustakaan pengurusan negeri baharu yang membantu anda mengurus dan menyimpan data responsif serta keadaan merentas komponen dalam aplikasi Vue.js. Pinia telah dicipta oleh Eduardo San Martin Morote, salah seorang ahli pasukan teras Vue.

Pinia menggunakan sistem reaktif baharu untuk membina sistem pengurusan negeri yang intuitif dan ditaip sepenuhnya.

Ciri baharu yang diperkenalkan di perpustakaan adalah salah satu faktor yang menyumbang kepada cadangan Pinia. Secara keseluruhan, Pinia kelihatan ringan, ringkas dan mudah dikuasai. Ia mempunyai segala-galanya untuk membuat pengaturcaraan dalam Vue 3 dan Vue 2 universal. Jadi ini adalah peluang yang sesuai untuk mencuba Pinia.

Apakah itu Vuex?

Vuex ialah corak pengurusan negeri dan pustaka yang dibina sebagai stor berpusat yang membantu anda mengekalkan keadaan semua komponen yang terdapat dalam aplikasi Vue anda. Vuex mengikut peraturan yang memastikan keadaan anda bermutasi kepada kriteria yang diramalkan.

Satu faktor yang menjadikan Vuex lebih berkuasa ialah komponen mendapat keadaannya daripada gedung Vuex dan boleh bertindak balas terhadap perubahan dalam keadaan kedai dengan cepat dan cekap.

Walaupun Vuex ialah perpustakaan pengurusan negeri yang menyelenggara kedai anda, anda disyorkan untuk mengetahui atau telah membina SPA berskala besar. Jika anda tidak mempunyai pengalaman, Vuex boleh menjadi kata-kata dan menakutkan.

Jika aplikasi anda luas, anda perlu mengurus aliran data yang kompleks, dan anda mempunyai komponen bersarang, anda boleh menggunakan Vuex. Semak dokumentasi rasmi untuk mendapatkan maklumat lanjut tentang masa untuk menggunakan Vuex.

Ciri Pinia

Salah satu perbezaan antara Pinia dan Vuex ialah Pinia ialah "reka bentuk modular", dengan kata lain, ia dibina untuk mempunyai berbilang kedai, manakala Vuex hanya mempunyai satu kedai. Di kedai ini anda boleh mempunyai submodul. Di samping itu, Pinia membenarkan setiap modul ini diimport terus ke dalam komponen yang diperlukan dari kedai mereka.

Reka Bentuk Modular

Jika anda seorang pembangun Vue dan telah menggunakan Vuex untuk mengurus keadaan aplikasi anda, anda akan melihat bahawa Vuex There hanya satu kedai. Di kedai ini anda boleh memasukkan berbilang modul di dalamnya. Dengan Pinia, anda boleh menyimpan setiap modul ini di satu tempat dan mengimportnya terus ke dalam komponen apabila diperlukan.

Kaedah ini membolehkan pengikat membahagi kodnya secara automatik dan memberikan inferens TypeScript yang lebih baik.

Sokongan alat pembangunan penuh

Pinia menyediakan sokongan alat pembangunan untuk membantu anda membina dan nyahpepijat dengan mudah dengan perpustakaan ini. Apabila kami memasang Pinia, ia secara automatik menyambung ke dalam alatan pembangunan Vue.js kami dan membolehkan kami menjejaki perubahan yang dibuat pada kedai kami, yang memberikan kami kelancaran merentas pengalaman pembangun versi Vue.js (Vue 2 dan Vue3).

Pinia adalah intuitif

Pinia menyediakan API ringkas yang menjadikan penulisan kedai anda semudah dan teratur seperti mencipta Komponen adalah sama. Ini bermakna terdapat kurang boilerplate dan konsep untuk dikuasai berbanding dengan penyelesaian Vuex.

Pinia boleh dilanjutkan

Pinia juga menyediakan sistem pemalam yang lengkap dengan ciri seperti perdagangan dan penyegerakan storan tempatan, sesuai untuk Kes di mana Pinia lalai tingkah laku tidak mencukupi.

Sokongan TypeScript

Pinia menyediakan sokongan TypeScript yang lebih baik daripada Vuex, dengan autolengkap Javascript, yang menjadikan proses pembangunan mudah.

Pinia Lightweight

Pinia mempunyai berat hanya 1 KB, menjadikannya mudah untuk disepadukan ke dalam projek anda. Ini boleh meningkatkan prestasi aplikasi anda.

Ciri Vuex

Modul

Apabila aplikasi anda berskala , traversal menjadi susah. Walau bagaimanapun, menggunakan modul Vuex anda boleh membahagikan kedai anda kepada berbilang fail berdasarkan kefungsian domain dan mengakses gelung keadaan daripada modul dalam ruang nama khusus tersebut.

Sokongan Alat Pembangun

Tab Vuex dalam Vue devtools membolehkan kami melihat status dan menjejaki perubahan kami. Ini membolehkan kami menilai dengan cepat prestasi program kami dan ralat nyahpepijat.

Muat semula panas

Vuex menyokong fungsi muat semula panas menggunakan API penggantian modul panas webpack, yang boleh memuatkan semula dengan cepat apabila anda membangunkan anda mutasi, modul, tindakan dan pengambil.

Sokongan TypeScript

Jika anda ingin menulis definisi storan TypeScript, Vuex boleh menyediakan jenis untuknya dan menjadikannya lebih mudah untuk dilaksanakan. Ia mempunyai konfigurasi TypeScript lalai dan tidak memerlukan persediaan tambahan.

Perbandingan kod antara Pinia dan Vuex

Pinia ialah perpustakaan ringan yang membantu anda mengurus keadaan reaktif sepanjang aplikasi anda. Berbanding dengan Vuex, API Pinia mudah dipelajari, menjadikan kod anda lebih mudah dibaca.

Mari kita lihat perbandingan kod untuk menguruskan negeri kita menggunakan Pinia dan Vuex:

Vuex

Dalam contoh ini kita akan melihat a Kedai Vuex ringkas yang menjejaki status item senarai tugasan:

import { createStore } from 'vuex'const TodoListstore = createStore({
  state() {
    return {
      todoListItems: []
    }
  },
  actions: {
    addNewList({ commit }, item) {
    {
      commit('createNewItem', item)
    }
  },
  mutations: {
    createNewItem(state, item) {
      state.todoListItems.push(item)
    }
  }})

Jika anda melihat kod di atas, anda boleh melihat tiga tindakan dalam gedung Vuex: keadaan, tindakan dan mutasi. Keadaan mengembalikan todoListItems semasa, tindakan menyerahkan mutasi untuk mencipta item baharu, dan akhirnya, mutasi mencipta item baharu dan menambahkannya ke senarai. Semasa anda membina aplikasi yang lebih besar, anda mungkin menyedari bahawa tindakan dan mutasi adalah agak serupa, mengakibatkan kod berlebihan kerana setiap perubahan keadaan memerlukan boilerplate.

Pinia

Menggunakan API ringkas Pinia, anda boleh menghapuskan mutasi dan kod berlebihan. Mari lihat contoh kod untuk melihat rupa kod sebelumnya apabila anda melaksanakannya menggunakan Pinia:

import { defineStore } from 'pinia'Export const useListStore = defineStore('list', {
  state() => ({
    return {
      todoListItems: []
    }
  }),
  actions: {
    addNewList() {  
      this.todoListItems.push(item)
    }
  }})

Contoh di atas ialah kod ringkas tentang cara API Pinia berfungsi semasa mengurus keadaan aplikasi. Menggunakan Pinia, kami mengalih keluar mutasi dan mengemas kininya terus ke dalam tindakan kami.

Nota: Dalam contoh kod di atas, kami tidak perlu menjejaki projek kami apabila kami menyerahkannya terus kepada tindakan kami.

Kebaikan dan keburukan Pinia dan Vuex

Pinia dan Vuex ialah alat yang sangat baik untuk mengawal keadaan aplikasi, tetapi seseorang mesti mempunyai apa yang dimiliki oleh yang lain. Sesetengah ciri tidak tersedia. Mari lihat apa itu.

Faedah Pinia

  • Pinia membenarkan anda mengubah suai kedai anda tanpa memuatkan semula halaman.
  • Ia menyediakan sokongan TypeScript dan autolengkap yang baik dalam JavaScript.
  • Pinia menyediakan sokongan devtool, yang membantu meningkatkan pengalaman pembangun menggunakan alat tersebut.
  • Pinia hanya mempunyai keadaan, pengambil dan tindakan. Tiada mutasi diperlukan.
  • Dengan Pinia anda boleh menyimpan keadaan di satu tempat dan menyampaikannya kepada komponennya atas permintaan.
  • Ia ialah perpustakaan ringan seberat 1 KB.
  • Ia menyediakan sokongan pemaparan bahagian pelayan dan modul jenis auto tanpa kerja tambahan.
  • Pinia serasi dengan Vue 2 dan Vue 3.

Kelemahan Pinia

  • Berbanding dengan Vuex, ia tidak mempunyai sokongan dan penyelesaian komuniti yang besar.
  • Pinia tidak menyokong ciri penyahpepijatan seperti perjalanan masa dan penyuntingan.

Kelebihan Vuex

  • Vuex mempunyai mutasi, getter dan tindakan.
  • Vuex mempunyai sokongan komuniti yang hebat berbanding Pinia.
  • Vuex menyokong ciri penyahpepijatan seperti perjalanan masa dan penyuntingan.

Kelemahan Vuex

  • Ia tidak mesra TypeScript.
  • Anda hanya boleh menggunakannya untuk spa besar.

Yang manakah harus saya gunakan: Pinia atau Vuex?

Nah, di sinilah ia menjadi lebih mencabar, kerana masih terdapat beberapa projek yang perlu menggunakan Vuex untuk aplikasi stateful, walaupun Pinia ialah perpustakaan pengurusan negeri yang disyorkan baharu. Ia mempunyai beberapa ciri berharga yang tidak dimiliki oleh Vuex.

Vuex masih merupakan penyelesaian yang ideal untuk membina SPA yang besar kerana ia agak bertele-tele untuk orang yang membina aplikasi bersaiz kecil hingga sederhana.

Begitu juga dengan Pinia. Namun begitu, jika anda memerlukan semua ciri yang disenaraikan seperti sokongan devtool, sokongan TypeScript dan pengurusan mudah aplikasi stateful, maka Pinia ialah penyelesaian terbaik – ia memberikan anda pengalaman pembangunan yang lancar.

Jika anda sedang membina aplikasi yang kurang kompleks, sama ada sederhana hingga luas, anda boleh menggunakan Pinia kerana ia mempunyai berat sekitar 1 KB.

Kesimpulan

Disebabkan kepelbagaian ciri, memilih antara Vuex dan Pinia boleh mengelirukan apabila mengurus keadaan aplikasi. Walau bagaimanapun, kedua-dua rangka kerja sangat sesuai untuk mengurus aplikasi stateful. Artikel ini membandingkan secara ringkas ciri, fungsi dan kesannya pada kod anda. Selepas membaca artikel ini, mungkin anda akan dapat mencari perpustakaan yang sesuai untuk anda.

(Mempelajari perkongsian video: tutorial pengenalan vuejs, Video pengaturcaraan asas)

Atas ialah kandungan terperinci Mari kita bincangkan tentang dua perpustakaan pengurusan negeri Vue Pinia dan Vuex yang manakah harus saya gunakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:csdn.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam