cari
Rumahhujung hadapan webView.jsKongsi alat pengurusan negeri baharu Vue3: Pinia

Kongsi alat pengurusan negeri baharu Vue3: Pinia

Dec 16, 2021 am 10:42 AM
vue.jsvuexhujung hadapanPengurusan 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

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')

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

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

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'])
  }
}

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
    }
  }
}

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
Artikel ini dikembalikan pada:segmentfault. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Vue.js: Menentukan peranannya dalam pembangunan webVue.js: Menentukan peranannya dalam pembangunan webApr 18, 2025 am 12:07 AM

Peranan vue.js dalam pembangunan web adalah bertindak sebagai rangka kerja JavaScript yang progresif yang memudahkan proses pembangunan dan meningkatkan kecekapan. 1) Ia membolehkan pemaju memberi tumpuan kepada logik perniagaan melalui pengikatan data yang responsif dan pembangunan komponen. 2) Prinsip kerja Vue.js bergantung kepada sistem responsif dan DOM maya untuk mengoptimumkan prestasi. 3) Dalam projek sebenar, adalah amalan biasa untuk menggunakan VUEX untuk menguruskan keadaan global dan mengoptimumkan respons data.

Memahami Vue.js: Terutama rangka kerja frontendMemahami Vue.js: Terutama rangka kerja frontendApr 17, 2025 am 12:20 AM

Vue.js adalah kerangka JavaScript yang progresif yang dikeluarkan oleh You Yuxi pada tahun 2014 untuk membina antara muka pengguna. Kelebihan terasnya termasuk: 1. Pengikatan data responsif, Paparan Kemas Kini Automatik Perubahan Data; 2. Pembangunan komponen, UI boleh dibahagikan kepada komponen bebas dan boleh diguna semula.

Frontend Netflix: Contoh dan Aplikasi React (atau Vue)Frontend Netflix: Contoh dan Aplikasi React (atau Vue)Apr 16, 2025 am 12:08 AM

Netflix menggunakan React sebagai kerangka depannya. 1) Model pembangunan komponen React dan ekosistem yang kuat adalah sebab utama mengapa Netflix memilihnya. 2) Melalui komponen, Netflix memisahkan antara muka kompleks ke dalam ketulan yang boleh diurus seperti pemain video, senarai cadangan dan komen pengguna. 3) Kitaran Hayat DOM dan Komponen Maya React mengoptimumkan kecekapan rendering dan pengurusan interaksi pengguna.

Landskap Frontend: Bagaimana Netflix menghampiri pilihannyaLandskap Frontend: Bagaimana Netflix menghampiri pilihannyaApr 15, 2025 am 12:13 AM

Pilihan Netflix dalam teknologi front-end terutamanya memberi tumpuan kepada tiga aspek: pengoptimuman prestasi, skalabilitas dan pengalaman pengguna. 1. Pengoptimuman Prestasi: Netflix memilih React sebagai kerangka utama dan alat yang dibangunkan seperti SpeedCurve dan Boomerang untuk memantau dan mengoptimumkan pengalaman pengguna. 2. Skalabiliti: Mereka mengamalkan seni bina front-end mikro, memisahkan aplikasi ke dalam modul bebas, meningkatkan kecekapan pembangunan dan skalabilitas sistem. 3. Pengalaman Pengguna: Netflix menggunakan perpustakaan komponen bahan-UI untuk terus mengoptimumkan antara muka melalui ujian A/B dan maklum balas pengguna untuk memastikan konsistensi dan estetika.

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.

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)
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

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.

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.