cari
Rumahhujung hadapan webView.jsBagaimana untuk menggunakan Vuex untuk pengurusan data dan perkongsian negeri?

Vuex ialah perpustakaan pengurusan negeri yang direka khas untuk Vue.js. Ia boleh membantu kami memudahkan pemindahan dan pengurusan data antara komponen dan meningkatkan kebolehselenggaraan dan kebolehskalaan aplikasi. Artikel ini akan memperkenalkan cara menggunakan Vuex untuk pengurusan data dan perkongsian negeri, dengan harapan dapat membantu semua orang memahami dan menggunakan Vuex dengan lebih baik.

1. Apakah itu Vuex?

Vuex ialah perpustakaan pengurusan negeri yang disediakan secara rasmi oleh Vue.js Ia menggunakan storan berpusat untuk mengurus keadaan semua komponen aplikasi dan menggunakan peraturan yang sepadan untuk memastikan ketekalan keadaan. Dalam Vuex, kami boleh mengurus data kami dan menyatakan melalui gedung Kedai termasuk konsep teras berikut:

  • nyatakan: data keadaan, digunakan untuk menyimpan pelbagai nilai keadaan dalam aplikasi
  • getter: baca Dapatkan atribut yang dikira , digunakan untuk memperoleh beberapa nilai keadaan daripada stor;
  • mutasi: mengubah suai keadaan secara serentak, digunakan untuk mengubah suai data secara serentak dalam keadaan
  • tindakan: keadaan diubah suai tidak segerak, digunakan untuk memproses operasi tak segerak dan menyerahkan mutasi ;
  • modul: Modularisasi, digunakan untuk membahagikan kedai besar kepada sub-modul yang lebih kecil dan mengurus status serta operasinya masing-masing.

2. Mengapa anda memerlukan Vuex?

Dalam aplikasi Vue.js, apabila tahap komponen terus meningkat, pemindahan data dan keadaan antara komponen akan menjadi semakin kompleks Pada masa ini, kami memerlukan perpustakaan pengurusan negeri untuk membantu kami mengurus dan berkongsi pelbagai nilai status ​dalam permohonan itu. Menggunakan Vuex boleh membawa faedah berikut:

  1. Pengurusan negeri berpusat: setiap komponen boleh mengakses pepohon keadaan yang sama, menjadikan pengurusan negeri lebih bersatu dan berpusat
  2. Penyelenggaraan dan penyahpepijatan yang mudah: Vuex boleh membantu kami memahami status dan data dengan lebih baik; aliran aplikasi, menjadikan penyahpepijatan dan penyelenggaraan lebih mudah
  3. Meningkatkan kebolehbacaan dan kebolehselenggaraan kod: Menggunakan Vuex, aliran kawalan data boleh ditumpukan di satu tempat, menjadikan logik kod lebih cekap Jelas dan mudah diselenggara ;
  4. Pemisahan logik perniagaan dan pengurusan keadaan: Dengan menyimpan keadaan dalam stor Vuex, pemisahan komponen logik perniagaan dan komponen pengurusan negeri boleh dicapai untuk memudahkan penyelenggaraan dan pengurusan.

3. Bagaimana cara menggunakan Vuex?

Sebelum menggunakan Vuex, anda perlu memasang perpustakaan Vuex dan memperkenalkannya dalam projek Vue:

npm install vuex --save

import Vuex from 'vuex'
import Vue from 'vue'

Vue.use(Vuex)

Seterusnya, kita perlu mencipta kedai Vuex dan mendaftarkannya dalam contoh Vue, seperti berikut:

const store = new Vuex.Store({
  state: {
    count: 0
  },
  mutations: {
    increment(state) {
      state.count++
    },
    decrement(state) {
      state.count--
    }
  },
  actions: {
    incrementAsync(context) {
      setTimeout(() => {
        context.commit('increment')
      }, 1000)
    }
  },
  getters: {
    evenOrOdd(state) {
      return state.count % 2 === 0 ? 'even' : 'odd'
    }
  }
})

new Vue({
  el: '#app',
  store,
  computed: {
    count() {
      return this.$store.state.count
    },
    evenOrOdd() {
      return this.$store.getters.evenOrOdd
    }
  },
  methods: {
    increment() {
      this.$store.commit('increment')
    },
    decrement() {
      this.$store.commit('decrement')
    },
    incrementAsync() {
      this.$store.dispatch('incrementAsync')
    }
  }
})

Dalam perkara di atas kod, kami Mencipta kedai Vuex yang mengandungi tiga konsep teras (keadaan, mutasi dan tindakan). Antaranya, keadaan digunakan untuk menyimpan data keadaan, mutasi digunakan untuk mengubah suai keadaan secara serentak, dan tindakan digunakan untuk memproses operasi tak segerak dan menyerahkan mutasi. Di sini, kami juga mentakrifkan pengambil yang mengira sama ada nilai kiraan dalam keadaan adalah genap atau ganjil.

Dalam contoh Vue, kami menggunakan atribut atribut dan kaedah yang dikira untuk mengakses keadaan, mutasi dan tindakan dalam stor. count dan evenOrOdd dalam atribut yang dikira dikira berdasarkan data sebenar dalam keadaan, manakala increment, decrement dan incrementAsync dalam atribut kaedah ialah kaedah yang digunakan untuk mengubah suai keadaan.

4. Penggunaan keadaan dan mutasi

keadaan adalah konsep teras Vuex Ia digunakan untuk menyimpan pelbagai nilai keadaan secara amnya, ia perlu diubahsuai melalui mutasi. Dalam Vuex, kita boleh mengakses dan mengubah suai keadaan dengan cara berikut:

  1. Mengakses keadaan: Kita boleh mengakses keadaan dalam kedai melalui ini.$store.state Sebagai contoh, kiraan dalam kod contoh di atas ialah keadaan. .
  2. Ubah suai keadaan secara langsung:
    Ubah suai keadaan secara langsung akan menyebabkan alat analisis statik Vuex melaporkan ralat, kerana prinsip Vuex ialah perubahan data dalam stor mesti melalui mutasi. Jika kita perlu mengubahsuai secara langsung nilai keadaan, kita perlu menggunakan Vue.set supaya pengubahsuaian boleh mencetuskan kemas kini UI secara responsif Kod sampel adalah seperti berikut:
Vue.set(state.obj, 'newProp', 123)
  1. Ubah suai keadaan melalui mutasi:
    mutasi ialah koleksi. digunakan untuk mengubah suai keadaan Dalam Vuex ia adalah operasi segerak. Dengan melaksanakan mutasi, kita boleh sewenang-wenangnya mengubah suai nilai dalam negeri. Mutasi adalah satu-satunya cara untuk mengubah suai keadaan dalam Vuex Operasi tak segerak atau kesan sampingan lain tidak boleh dilakukan dalam mutasi. Kami boleh menyerahkan mutasi dengan cara berikut:
this.$store.commit('increment')   // 传入 mutation 的名称
this.$store.commit({
  type: 'increment',
  amount: 10    // 传入额外的参数
})

4. Penggunaan tindakan dan pengambil

Dalam aplikasi, kadangkala kita perlu melakukan beberapa operasi tak segerak, dalam kes ini, kita boleh menggunakan tindakan untuk mengendalikan, Tindakan boleh mengandungi sebarang asynchronous operasi, dan akhirnya data dalam keadaan perlu diubah suai dengan menyerahkan mutasi. Dalam Vuex, kami boleh mengendalikan tindakan dengan cara berikut:

  1. Takrifkan tindakan:
actions: {
  incrementAsync(context) {
    setTimeout(() => {
      context.commit('increment')
    }, 1000)
  }
}
  1. Serahkan tindakan:
this.$store.dispatch('incrementAsync')

Dalam Vuex, getter boleh dianggap sebagai harta terkira di sesetengah kedai, iaitu Melalui beberapa negeri, nilai yang diperoleh daripada keadaan kedai, sejumlah besar pengiraan berulang dan kompleks secara logik boleh di-cache. Dalam Vuex, kita boleh menggunakan getter dengan cara berikut:

  1. Takrifkan getter:
getters: {
  evenOrOdd(state) {
    return state.count % 2 === 0 ? 'even' : 'odd'
  }
}
  1. Access getters:
this.$store.getters.evenOrOdd

5. Penggunaan modul

在 Vuex 中,如果我们的应用程序中存在大量的 state 和 mutations、actions 和 getters,单独存放到一个 store 中会极大地增加代码的复杂性和维护难度,此时我们可以使用 module 在 Vuex 中进行模块化管理。在 using module 模式中,每个模块都拥有自己的 state、mutations、actions 和 getters,从而让代码更加清晰明了、易于维护。使用 module 的方法和常规的 Vuex store 相似,只是需要在 Vuex.Store() 中添加模块,如下所示:

const moduleA = {
  state: { ... },
  mutations: { ... },
  actions: { ... },
  getters: { ... }
}

const store = new Vuex.Store({
  modules: {
    a: moduleA
  }
})

如上代码所示,我们创建了一个名为 moduleA 的模块,然后在 store 中通过 modules 选项将其添加到了 Vuex 的 store 中。在组件中访问模块的 state、mutations、actions 和 getters,和访问常规的 Vuex store 中的一样,只需要在前面加上模块名即可,例如:

computed: {
  ...mapState('a', {
    count: state => state.count
  }),
  ...mapGetters('a', [
    'evenOrOdd'
  ])
},
methods: {
  ...mapMutations('a', [
    'increment'
  ]),
  ...mapActions('a', [
    'incrementAsync'
  ])
}

在组件中,使用 mapState、mapMutation、mapActions 和 mapGetters 进行访问和操作,可以更加方便和快捷地操作和维护模块的状态和数据。

六、总结

本文简要介绍了 Vue.js 的状态管理库 Vuex 的使用方法和常用场景,包括 state、mutation、action、getter 和 module 等几个核心概念的使用。Vuex 可以帮助我们有效地管理和共享应用程序中的各种状态值,提高代码的可维护性和可扩展性。在使用 Vuex 的过程中,我们还需要注意一些细节和坑点,如同步和异步操作、state 和 mutation 的使用规范等问题,需要认真掌握和注意。

Atas ialah kandungan terperinci Bagaimana untuk menggunakan Vuex untuk pengurusan data dan perkongsian negeri?. 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
React vs Vue: Rangka kerja mana yang digunakan oleh Netflix?React vs Vue: Rangka kerja mana yang digunakan oleh Netflix?Apr 14, 2025 am 12:19 AM

NetflixusesAcustomFrameworkcalled "gibbon" Builtonreact, notreactorsvuedirectly.1) TeamExperience: chectionBasedOnfamiliarity.2) ProjectOplePlexity: VueforsImplerProjects, ReactForComplexones.3)

Pilihan Rangka Kerja: Apa yang mendorong keputusan Netflix?Pilihan Rangka Kerja: Apa yang mendorong keputusan Netflix?Apr 13, 2025 am 12:05 AM

Netflix terutamanya menganggap prestasi, skalabiliti, kecekapan pembangunan, ekosistem, hutang teknikal dan kos penyelenggaraan dalam pemilihan rangka kerja. 1. Prestasi dan Skalabiliti: Java dan Springboot dipilih untuk memproses data besar -besaran dan permintaan serentak yang tinggi. 2. Kecekapan Pembangunan dan Ekosistem: Gunakan React untuk meningkatkan kecekapan pembangunan front-end dan menggunakan ekosistemnya yang kaya. 3. Hutang Teknikal dan Penyelenggaraan Kos: Pilih Node.js untuk membina mikroservis untuk mengurangkan kos penyelenggaraan dan hutang teknikal.

React, Vue, dan Masa Depan Frontend NetflixReact, Vue, dan Masa Depan Frontend NetflixApr 12, 2025 am 12:12 AM

Netflix terutamanya menggunakan React sebagai rangka kerja front-end, ditambah dengan VUE untuk fungsi tertentu. 1) Komponen React dan DOM maya meningkatkan prestasi dan kecekapan pembangunan aplikasi Netflix. 2) VUE digunakan dalam alat dalaman dan projek kecil Netflix, dan fleksibiliti dan kemudahan penggunaannya adalah kunci.

Vue.js di frontend: aplikasi dan contoh dunia nyataVue.js di frontend: aplikasi dan contoh dunia nyataApr 11, 2025 am 12:12 AM

Vue.js adalah rangka kerja JavaScript yang progresif yang sesuai untuk membina antara muka pengguna yang kompleks. 1) Konsep terasnya termasuk data responsif, komponen dan DOM maya. 2) Dalam aplikasi praktikal, ia boleh ditunjukkan dengan membina aplikasi todo dan mengintegrasikan vuerouter. 3) Apabila debugging, disyorkan untuk menggunakan Vuedevtools dan Console.log. 4) Pengoptimuman prestasi boleh dicapai melalui V-IF/V-Show, senarai pengoptimuman rendering, pemuatan asynchronous komponen, dll.

Vue.js dan bertindak balas: Memahami perbezaan utamaVue.js dan bertindak balas: Memahami perbezaan utamaApr 10, 2025 am 09:26 AM

Vue.js sesuai untuk projek kecil dan sederhana, sementara React lebih sesuai untuk aplikasi besar dan kompleks. 1. Sistem responsif vue.js secara automatik mengemas kini DOM melalui pengesanan ketergantungan, menjadikannya mudah untuk menguruskan perubahan data. 2. Leact mengamalkan aliran data sehala, dan data mengalir dari komponen induk ke komponen kanak-kanak, menyediakan aliran data yang jelas dan struktur yang mudah dibuang.

Vue.js vs React: Pertimbangan khusus projekVue.js vs React: Pertimbangan khusus projekApr 09, 2025 am 12:01 AM

Vue.js sesuai untuk projek kecil dan sederhana dan lelaran yang cepat, sementara React sesuai untuk aplikasi besar dan kompleks. 1) Vue.js mudah digunakan dan sesuai untuk situasi di mana pasukan tidak mencukupi atau skala projek kecil. 2) React mempunyai ekosistem yang lebih kaya dan sesuai untuk projek dengan prestasi tinggi dan keperluan fungsional yang kompleks.

Cara melompat tag ke vueCara melompat tag ke vueApr 08, 2025 am 09:24 AM

Kaedah untuk melaksanakan lompatan tag dalam Vue termasuk: menggunakan tag dalam templat HTML untuk menentukan atribut HREF. Gunakan komponen router-link routing VUE. Gunakan ini. $ Router.push () kaedah dalam JavaScript. Parameter boleh dilalui melalui parameter pertanyaan dan laluan dikonfigurasikan dalam pilihan penghala untuk lompatan dinamik.

Cara melaksanakan lompat komponen untuk vueCara melaksanakan lompat komponen untuk vueApr 08, 2025 am 09:21 AM

Terdapat kaedah berikut untuk melaksanakan lompat komponen di Vue: Gunakan Router-Link dan & lt; Router-View & GT; Komponen untuk melaksanakan lompat hiperpautan, dan tentukan: untuk atribut sebagai laluan sasaran. Gunakan & lt; router-view & gt; Komponen secara langsung untuk memaparkan komponen yang dijalankan yang sedang dialihkan. Gunakan kaedah router.push () dan router.replace () untuk navigasi programatik. Bekas menjimatkan sejarah dan yang kedua menggantikan laluan semasa tanpa meninggalkan rekod.

See all articles

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

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver Mac版

Dreamweaver Mac版

Alat pembangunan web visual

SecLists

SecLists

SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual