Pinia

Pinia
AutorEduardo San Martin Morote
Lançamento inicialnovembro de 2019 (6 anos)
Lançamento estável
2.3.1 / 20 de janeiro de 2025
Repositóriogithub.com/vuejs/pinia
Escrito emTypeScript
PlataformaWeb
AntecessorVuex
Tamanho~1.5 KB
TipoBiblioteca de gestão de estado
LicençaLicença MIT
Websitepinia.vuejs.org

Pinia é uma biblioteca de armazenamento e um framework de gestão de estado para Vue.js.[1] Foi concebida principalmente para o desenvolvimento de aplicações web front-end, utilizando uma sintaxe declarativa e fornecendo a sua própria API de gestão de estado. A Pinia foi endossada pela equipa do Vue.js como uma alternativa credível ao Vuex e é actualmente a biblioteca oficial de gestão de estado do ecossistema Vue.[2]

Visão geral

Ao contrário do Vuex, a Pinia é modular por concepção e não utiliza mutações. Isto permite aos programadores criar múltiplas stores e importá-las conforme necessário nos componentes. O framework disponibiliza um armazenamento centralizado com mecanismos integrados para guardar, actualizar e recuperar o estado da aplicação.[3]

História

A Pinia foi idealizada pelo programador do Vue.js Eduardo San Martin Morote[4] como uma exploração de como o Vuex poderia evoluir no futuro.[5] O objectivo era criar uma API mais simples, com menos complexidade estrutural, e melhorar o suporte à inferência de tipos em TypeScript.[6] A Pinia tornou-se uma parte oficial do ecossistema Vue.js a 7 de Fevereiro de 2022.[5]

O nome da biblioteca deriva da palavra espanhola piña, que significa “ananás”. Segundo os seus criadores, um ananás é composto por várias flores individuais que se unem para formar um único fruto, de forma semelhante às stores, que nascem individualmente mas permanecem interligadas.[7]

Funcionalidades

Pilares das stores

As stores na Pinia são definidas através de um objecto JavaScript com várias propriedades que determinam o seu comportamento. Estas propriedades são consideradas os “pilares” de uma store e incluem id, state, getters e actions.[8]

import { defineStore, acceptHMRUpdate } from 'pinia';

export const useCounterStore = defineStore('counter', {
  state: () => ({
    counter: 0,
  }),

  getters: {
    doubleCount: (state) => state.counter * 2,
  },

  actions: {
    increment() {
      this.counter++;
    },
  },
});

if (import.meta.hot) {
  import.meta.hot.accept(acceptHMRUpdate(useCounterStore, import.meta.hot));
}

Suporte a Devtools

A Pinia integra-se com o Vue Devtools, uma extensão popular para depuração de aplicações Vue.js.[9]

Suporte a plugins

O framework oferece suporte a vários plugins, incluindo Nuxt e o Vue Devtools.[10]

Substituição dinâmica de módulos

A Pinia permite a substituição dinâmica de módulos (hot module replacement), possibilitando a modificação das stores sem recarregar a página e preservando o estado actual da aplicação.

Ver também

Referências

  1. Gerchev, Ivaylo (11 de abril de 2022). «Complex Vue 3 state management made easy with Pinia». LogRocket Blog (em inglês). Consultado em 22 de fevereiro de 2023 
  2. «Build a To-do List App with Pinia and Vue 3». Deepgram (em inglês). 12 de outubro de 2022. Consultado em 22 de fevereiro de 2023 
  3. Jahr, Adam. «What is Pinia? - Pinia Fundamentals». Vue Mastery (em inglês). Consultado em 18 de janeiro de 2023 
  4. «Pinia, an Alternative Vue.js Store - Vue School Blog». Vue School (em inglês). Consultado em 17 de janeiro de 2023 
  5. a b Mariappan (13 de outubro de 2022). «What makes Pinia the new default?». Frontend Weekly (em inglês). Consultado em 17 de janeiro de 2023 
  6. «Pinia vs. Vuex: Is Pinia a good replacement for Vuex?». DEV Community (em inglês). Consultado em 22 de fevereiro de 2023 
  7. «Everything Beyond State Management in Stores with Pinia». morioh.com. Consultado em 22 de fevereiro de 2023 
  8. «Pinia vs Vuex: Farewell Vuex, Hello Pinia! How to Get Started?». Software Planet Group (em inglês). 11 de janeiro de 2023. Consultado em 17 de janeiro de 2023 
  9. «How To Handle State Management in Vue Using Pinia». CoderPad (em inglês). 27 de janeiro de 2023. Consultado em 22 de fevereiro de 2023 
  10. «Everything Beyond State Management in Stores with Pinia». GitNation (em inglês). Consultado em 18 de janeiro de 2023 

Ligações externas