Jadual Kandungan
Alat pengurusan keadaan Vue3 baharu: Pinia
Rumah hujung hadapan web View.js Kongsi alat pengurusan negeri baharu Vue3: Pinia

Kongsi alat pengurusan negeri baharu Vue3: Pinia

Dec 16, 2021 am 10:42 AM
vue.js vuex hujung hadapan Pengurusan status

Artikel ini akan berkongsi dengan anda pengenalan kepada alat pengurusan keadaan Vue3 baharu: Pinia, dan bercakap tentang pemasangan dan penggunaan alat Pinia saya harap ia akan membantu semua orang.

Kongsi alat pengurusan negeri baharu Vue3: Pinia

Alat pengurusan keadaan Vue3 baharu: Pinia

Vue3 telah dikeluarkan untuk beberapa lama dan ia menggunakan yang baharu sistem responsif, dan membina Composition API serba baharu. Ekosistem sekeliling Vue sedang meningkatkan usahanya untuk menyesuaikan diri dengan sistem baharu ini, dan perpustakaan pengurusan negeri rasmi Vuex juga sedang menyesuaikan diri Atas sebab ini, pegawai itu telah mengemukakan cadangan baharu untuk Vuex 5. [Cadangan berkaitan: "Tutorial vue.js"]

Kongsi alat pengurusan negeri baharu Vue3: Pinia

  • menyokong dua sintaks untuk membuat Kedai: Options Api dan Composition Api;
  • Padam mutations, hanya sokong state, getters, actions;
  • reka bentuk modular, boleh menyokong pemisahan kod
  • Tiada modul Bersarang sahaja mempunyai konsep Kedai;
  • Lengkap TypeScript sokongan;

Di bawah cadangan ini, terdapat ulasan yang menarik. Terjemahan mudah:

Kongsi alat pengurusan negeri baharu Vue3: Pinia

Alangkah kebetulannya, cadangan Vuex5 tidak boleh dikatakan tiada kaitan dengan fungsi yang dilaksanakan oleh Pinia, ia hanya boleh dikatakan tepat sama. Artikel hari ini akan memberi anda Izinkan saya memperkenalkan nanas ini.

Pemasangan

Dalam projek sedia ada, arahan berikut telah digunakan untuk memasang modul Pinia.

# yarn
yarn add pinia@next
# npm
npm i pinia@next
Salin selepas log masuk

Selepas pemasangan selesai, anda perlu mengimport dan memasangnya dalam fail kemasukan projek Vue3.

// main.js
import { createApp } from 'vue'
import { createPinia } from 'pinia'
import App from './App.vue'

// 实例化 Vue
const app = createApp(App)
// 安装 Pinia
app.use(createPinia())
// 挂载在真实 DOM
app.mount('#app')
Salin selepas log masuk

Bermula

Untuk menggunakan Pinia, anda hanya perlu mentakrifkan kedai dan kemudian mengimportnya di tempat data digunakan.

Define Store

import { defineStore } from "pinia"

// 对外部暴露一个 use 方法,该方法会导出我们定义的 state
const useCounterStore = defineStore({
  // 每个 store 的 id 必须唯一
  id: 'counter',
  // state 表示数据源
  state: () => ({
    count: 0
  }),
  // getters 类似于 computed,可对 state 的值进行二次计算
  getters: {
    double () {
        // getter 中的 this 指向 state
        return this.count * 2
      },
      // 如果使用箭头函数会导致 this 指向有问题
      // 可以在函数的第一个参数中拿到 state
    double: (state) => {
        return state.count * 2
      }
  },
  // actions 用来修改 state
  actions: {
    increment() {
      // action 中的 this 指向 state
      this.count++
    },
  }
})

export default useCounterStore
Salin selepas log masuk

Selain menggunakan kaedah seperti vuex di atas untuk membina keadaan, anda juga boleh menggunakan borang function untuk mencipta kedai , yang agak serupa dengan Vue3 setup() dalam .

import { ref, computed } from "vue"
import { defineStore } from "pinia"

// 对外部暴露一个 use 方法,该方法会导出我们定义的 state
const useCounterStore = defineStore('counter', function () {
  const count = ref(0)
  const double = computed(() => count.value * 2)
  function increment() {
    count.value++
  }
  return {
      count, double, increment
  }
})

export default useCounterStore
Salin selepas log masuk

Menggunakan Kedai

Seperti yang dinyatakan sebelum ini, Pinia menyediakan dua cara untuk menggunakan kedai, kedua-dua Options Api dan Composition Api disokong dengan sempurna.

Pilihan Api

Dalam Options Api, anda boleh terus menggunakan kaedah mapActions dan mapState yang disediakan secara rasmi untuk mengeksport keadaan, pengambil dan tindakan dalam kedai , penggunaannya pada asasnya sama seperti Vuex, dan ia mudah untuk dimulakan.

import { mapActions, mapState } from 'pinia'
import { useCounterStore } from '../model/counter'

export default {
  name: 'HelloWorld',
  computed: {
    ...mapState(useCounterStore, ['count', 'double'])
  },
  methods: {
    ...mapActions(useCounterStore, ['increment'])
  }
}
Salin selepas log masuk

Komposisi Api

Composition Api, kedua-dua keadaan dan pengambil perlu mendengar perubahan melalui kaedah computed, yang sama seperti dalam Options Api , ia perlu diletakkan di dalam objek computed atas sebab yang sama. Di samping itu, nilai keadaan yang diperolehi dalam Options Api boleh diubah suai secara langsung Sudah tentu, adalah disyorkan untuk menulis tindakan untuk mengendalikan nilai keadaan untuk memudahkan penyelenggaraan kemudian.

// Composition Api
import { computed } from 'vue'
import { useCounterStore } from '../stores/counter'
export default {
  name: 'HelloWorld',
  setup() {
    const counter = useCounterStore()
    return {
      // state 和 getter 都需要在使用 computed,这和 Options Api 一样
      count: computed(() => counter.count),
      double: computed(() => counter.double),
      increment: () => { counter.count++ }, // 可以直接修改 state 的值
      increment: counter.increment, // 可以引用 store 中定义的 action
    }
  }
}
Salin selepas log masuk

Petua jenis

Dalam Vuex, pembayang jenis TypeScript tidak begitu baik semasa melakukan terbitan jenis, hanya keadaannya yang boleh ditemui. Terutama dalam proses menulis kod, gesaan kod sangat tidak bijak.

Kongsi alat pengurusan negeri baharu Vue3: Pinia

Dan pinia boleh menyimpulkan semua keadaan, pengambil dan tindakan yang ditentukan, yang akan menjadi lebih mudah semasa menulis kod.

Kongsi alat pengurusan negeri baharu Vue3: Pinia

Kongsi alat pengurusan negeri baharu Vue3: Pinia

Terutamanya kerana pinia mempunyai definisi jenis yang sangat mesra melalui TypeScript Jika anda berminat, anda boleh melihat definisi jenis pinia fail (pinia.d.ts):

Kongsi alat pengurusan negeri baharu Vue3: Pinia

Pemisahan Kod

Disebabkan reka bentuk modular, semua kedai boleh diperkenalkan secara berasingan dan bukannya Seperti vuex, semua modul dipasang pada kedai melalui modul.

Andaikan kita buat masa ini Kedai melalui Vuex Terdapat dua modul di bawah Kedai ini, iaitu modul pengguna (Pengguna) dan modul produk (Barang). Walaupun halaman utama semasa hanya menggunakan maklumat pengguna, keseluruhan Kedai akan dibungkus ke dalam bahagian js halaman utama.

Kongsi alat pengurusan negeri baharu Vue3: Pinia

Kongsi alat pengurusan negeri baharu Vue3: Pinia

Jika kami menggunakan pinia, kami akan menggunakan defineStore untuk mentakrifkan dua kedai yang berasingan sepenuhnya Apabila dua halaman itu diperkenalkan, ia tidak akan menjejaskan satu sama lain. Semasa pembungkusan akhir, bahagian js halaman utama dan bahagian js halaman produk masing-masing akan dibungkus ke dalam kedai yang sepadan.

Kongsi alat pengurusan negeri baharu Vue3: Pinia

Pengenalan Pinia tamat di sini Jika ada projek baru yang akan dibangunkan menggunakan Vue3, adalah disyorkan untuk menggunakan Pinia tanpa sebarang otak dan hanya bersaiz 1KB.

Untuk lebih banyak pengetahuan berkaitan pengaturcaraan, sila lawati: Pengenalan kepada Pengaturcaraan! !

Atas ialah kandungan terperinci Kongsi alat pengurusan negeri baharu Vue3: Pinia. 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

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

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)

PHP dan Vue: gandingan sempurna alat pembangunan bahagian hadapan PHP dan Vue: gandingan sempurna alat pembangunan bahagian hadapan Mar 16, 2024 pm 12:09 PM

PHP dan Vue: gandingan sempurna alat pembangunan bahagian hadapan Dalam era perkembangan pesat Internet hari ini, pembangunan bahagian hadapan telah menjadi semakin penting. Memandangkan pengguna mempunyai keperluan yang lebih tinggi dan lebih tinggi untuk pengalaman tapak web dan aplikasi, pembangun bahagian hadapan perlu menggunakan alat yang lebih cekap dan fleksibel untuk mencipta antara muka yang responsif dan interaktif. Sebagai dua teknologi penting dalam bidang pembangunan bahagian hadapan, PHP dan Vue.js boleh dianggap sebagai alat yang sempurna apabila digandingkan bersama. Artikel ini akan meneroka gabungan PHP dan Vue, serta contoh kod terperinci untuk membantu pembaca memahami dan menggunakan kedua-dua ini dengan lebih baik.

Soalan yang sering ditanya oleh penemuduga front-end Soalan yang sering ditanya oleh penemuduga front-end Mar 19, 2024 pm 02:24 PM

Dalam temu bual pembangunan bahagian hadapan, soalan lazim merangkumi pelbagai topik, termasuk asas HTML/CSS, asas JavaScript, rangka kerja dan perpustakaan, pengalaman projek, algoritma dan struktur data, pengoptimuman prestasi, permintaan merentas domain, kejuruteraan bahagian hadapan, corak reka bentuk, dan teknologi dan trend baharu. Soalan penemuduga direka bentuk untuk menilai kemahiran teknikal calon, pengalaman projek dan pemahaman tentang trend industri. Oleh itu, calon harus bersedia sepenuhnya dalam bidang ini untuk menunjukkan kebolehan dan kepakaran mereka.

Perkongsian pengalaman pembangunan C#: kemahiran pembangunan kolaboratif bahagian hadapan dan belakang Perkongsian pengalaman pembangunan C#: kemahiran pembangunan kolaboratif bahagian hadapan dan belakang Nov 23, 2023 am 10:13 AM

Sebagai pembangun C#, kerja pembangunan kami biasanya merangkumi pembangunan bahagian hadapan dan bahagian belakang Apabila teknologi berkembang dan kerumitan projek meningkat, pembangunan kolaboratif bahagian hadapan dan bahagian belakang menjadi semakin penting dan kompleks. Artikel ini akan berkongsi beberapa teknik pembangunan kolaboratif bahagian hadapan dan belakang untuk membantu pembangun C# menyelesaikan kerja pembangunan dengan lebih cekap. Selepas menentukan spesifikasi antara muka, pembangunan kolaboratif bahagian hadapan dan belakang tidak dapat dipisahkan daripada interaksi antara muka API. Untuk memastikan pembangunan kolaboratif bahagian hadapan dan belakang yang lancar, perkara yang paling penting ialah menentukan spesifikasi antara muka yang baik. Spesifikasi antara muka melibatkan nama antara muka

Adakah Django bahagian hadapan atau belakang? semaklah! Adakah Django bahagian hadapan atau belakang? semaklah! Jan 19, 2024 am 08:37 AM

Django ialah rangka kerja aplikasi web yang ditulis dalam Python yang menekankan pembangunan pesat dan kaedah bersih. Walaupun Django ialah rangka kerja web, untuk menjawab soalan sama ada Django ialah front-end atau back-end, anda perlu mempunyai pemahaman yang mendalam tentang konsep front-end dan back-end. Bahagian hadapan merujuk kepada antara muka yang pengguna berinteraksi secara langsung, dan bahagian belakang merujuk kepada program bahagian pelayan Mereka berinteraksi dengan data melalui protokol HTTP. Apabila bahagian hadapan dan bahagian belakang dipisahkan, program bahagian hadapan dan bahagian belakang boleh dibangunkan secara bebas untuk melaksanakan logik perniagaan dan kesan interaktif masing-masing, dan pertukaran data.

Meneroka teknologi bahagian hadapan bahasa Go: visi baharu untuk pembangunan bahagian hadapan Meneroka teknologi bahagian hadapan bahasa Go: visi baharu untuk pembangunan bahagian hadapan Mar 28, 2024 pm 01:06 PM

Sebagai bahasa pengaturcaraan yang pantas dan cekap, bahasa Go popular secara meluas dalam bidang pembangunan bahagian belakang. Walau bagaimanapun, beberapa orang mengaitkan bahasa Go dengan pembangunan bahagian hadapan. Malah, menggunakan bahasa Go untuk pembangunan bahagian hadapan bukan sahaja boleh meningkatkan kecekapan, tetapi juga membawa ufuk baharu kepada pembangun. Artikel ini akan meneroka kemungkinan menggunakan bahasa Go untuk pembangunan bahagian hadapan dan memberikan contoh kod khusus untuk membantu pembaca memahami dengan lebih baik bahagian ini. Dalam pembangunan front-end tradisional, JavaScript, HTML dan CSS sering digunakan untuk membina antara muka pengguna

Cara melaksanakan pemesejan segera pada bahagian hadapan Cara melaksanakan pemesejan segera pada bahagian hadapan Oct 09, 2023 pm 02:47 PM

Kaedah untuk melaksanakan pemesejan segera termasuk WebSocket, Tinjauan Panjang, Acara Dihantar Pelayan, WebRTC, dsb. Pengenalan terperinci: 1. WebSocket, yang boleh mewujudkan sambungan berterusan antara pelanggan dan pelayan untuk mencapai komunikasi dua hala masa nyata Bahagian hadapan boleh menggunakan API WebSocket untuk membuat sambungan WebSocket dan mencapai pemesejan segera dengan menghantar dan menerima. mesej; 2. Long Polling, teknologi yang menyerupai komunikasi masa nyata, dsb.

Django: Rangka kerja ajaib yang boleh mengendalikan pembangunan bahagian hadapan dan belakang! Django: Rangka kerja ajaib yang boleh mengendalikan pembangunan bahagian hadapan dan belakang! Jan 19, 2024 am 08:52 AM

Django: Rangka kerja ajaib yang boleh mengendalikan pembangunan bahagian hadapan dan belakang! Django ialah rangka kerja aplikasi web yang cekap dan berskala. Ia mampu menyokong berbilang model pembangunan web, termasuk MVC dan MTV, dan boleh membangunkan aplikasi web berkualiti tinggi dengan mudah. Django bukan sahaja menyokong pembangunan bahagian belakang, tetapi juga boleh membina antara muka bahagian hadapan dengan cepat dan mencapai paparan paparan yang fleksibel melalui bahasa templat. Django menggabungkan pembangunan bahagian hadapan dan pembangunan bahagian belakang menjadi penyepaduan yang lancar, supaya pembangun tidak perlu pakar dalam pembelajaran

Gabungan teknologi Golang dan bahagian hadapan: terokai cara Golang memainkan peranan dalam bidang bahagian hadapan Gabungan teknologi Golang dan bahagian hadapan: terokai cara Golang memainkan peranan dalam bidang bahagian hadapan Mar 19, 2024 pm 06:15 PM

Gabungan teknologi Golang dan bahagian hadapan: Untuk meneroka bagaimana Golang memainkan peranan dalam bidang bahagian hadapan, contoh kod khusus diperlukan Dengan perkembangan pesat Internet dan aplikasi mudah alih, teknologi bahagian hadapan telah menjadi semakin penting. Dalam bidang ini, Golang, sebagai bahasa pengaturcaraan bahagian belakang yang berkuasa, juga boleh memainkan peranan penting. Artikel ini akan meneroka cara Golang digabungkan dengan teknologi bahagian hadapan dan menunjukkan potensinya dalam bidang bahagian hadapan melalui contoh kod khusus. Peranan Golang dalam bidang front-end adalah sebagai cekap, ringkas dan mudah dipelajari

See all articles